作者evileva (小黑要乖喔)
看板Flash
标题[问题] 元渐翻转後占用效能居高不下
时间Fri Jun 25 10:04:05 2010
最近在写的专案上,要用到rotationY与z轴和x轴的翻转,
写一个漂亮的翻转动画是没有问题,
但是问题是如果翻转的对象是一个内容物丰富的元件,
则电脑CPU效能消耗就会居高不下,
我本来以为是我的元件内的子元件在翻转後,
有些事件会反覆被触发,
但是我把以前的专案拿来做翻转,
都依样会面临这种问题,
但是假如我要翻转的元件,是比较单纯的元件(内容物较少),
择效能则会在翻转完毕後获得释放,
不知道有没有人知道这是什麽问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.200.189
1F:推 cjcat2266:render复杂的东西本来就比较吃资源啊 06/25 10:21
2F:→ evileva:但是翻转完後为什麽效能不会被释放呢? 06/25 10:22
3F:推 cjcat2266:你翻转的东西是否本身有动画? 06/25 10:26
4F:→ cjcat2266:如果本身会一直改变外观,就会一直重复render 06/25 10:27
5F:→ cjcat2266:3D render跟2D render效能是差很多的 06/25 10:27
6F:→ cjcat2266:因为3D render会强制把元件暂存成点阵图 06/25 10:27
7F:→ cjcat2266:对於面积大或者复杂的物件来说,这个动作超级吃资源 06/25 10:28
8F:→ evileva:我知道3D翻转很耗效能 06/25 10:47
9F:→ evileva:但是真的不太清楚翻转完後,效能被占用到哪边去了ORZy 06/25 10:47
10F:推 cjcat2266:所以我才问你翻转的元件有没有动画啊 06/25 11:10
11F:→ cjcat2266:就算不继续3D翻转,只要元件外观有变动,就会重新render 06/25 11:11
12F:→ cjcat2266:除非你设定Transform3D.matrix3D = null 06/25 11:12
13F:→ cjcat2266:否则每次更新外关都会继续以3D方式render 06/25 11:12
14F:→ cjcat2266:就算把rotationXYZ都转回0度也一样 06/25 11:12
15F:→ evileva:元件内是有动画ORZ 06/25 11:15
16F:→ aquarianboy:附个范例如何? 06/25 11:24
17F:→ ben0209:不知道 cacheAsBitmap 有无帮助 06/25 13:02
18F:→ evileva:cacheAsBitmap可以解 感谢 06/25 13:21
19F:→ evileva:之前我想到的方法是不断把当前元件拍下来 06/25 13:22
20F:→ evileva:然後对拍下来的图做旋转 06/25 13:22
21F:→ evileva:这样在转的时候效能会花在 拍元件+旋转图片上 06/25 13:23
22F:→ evileva:但是还是直接用cacheAsBitmap 06/25 13:23
23F:→ evileva:我错了 cacheAsBitmap不能解XD 06/25 13:33
24F:推 cjcat2266:3D变形会强制cacheAsBitmap,所以没差 06/25 13:51
25F:→ cjcat2266:对效能最有利的解法就是拍照,也就是所谓的caching 06/25 13:52
26F:→ cjcat2266:缺点是互动性就没了 06/25 13:52