我有一个介绍屏幕,其中有一个250x130的位图,我想淡入淡出。我正在使用tweenlite,它在Pc上看起来很棒,但在iphone上,它看起来只有1到2帧/秒,真的很慢。只有2个文本字段和这个动画位图。影片设置为默认的24fps。代码是
包{
import flash.display.MovieClip;
import com.greensock.TweenLite;
import com.greensock.easing.*;
public class intro extends MovieClip {
public function intro() {
fadesIn();
}
function fadesOut():void{ if (this.visible) TweenLite.to(mc, 4, {delay:1,ease:Cubic.easeInOut, alpha:0,onComplete:fadesIn});}
function fadesIn():void{ if (this.visible) TweenLite.to(mc, 4, {delay:1,ease:Cubic.easeInOut, alpha:1,onComplete:fadesOut});}
}}
iphone的渲染是GPU。在第一帧上有stage.quality = StageQuality.LOW;。
谢谢
发布于 2013-08-21 23:40:24
使用Starling (http://gamua.com/starling/)有时是在移动设备上获得良好性能的唯一方法,因为它充分利用了设备上的图形处理器。
从Adobe网站(http://help.adobe.com/en_US/as3/mobile/WS901d38e593cd1bac-3d719af412b2b394529-8000.html):
通过在应用程序描述符中包含图形处理器来实现AIR应用程序中的硬件图形加速(或使用direct利用Stage3D)。不能在运行时更改渲染模式。在台式计算机上,使用gpu将后退到direct。
注意:为了在移动平台上使用GPU加速Flash内容和AIR,Adobe建议您使用renderMode=直接(即Stage3D),而不是使用renderMode="gpu“。Adobe官方支持并推荐以下基于Stage3D的框架: Starling (2D)和Away3D (3D)。有关Stage3D和Starling/Away3D的更多详细信息,请参阅http://gaming.adobe.com/getstarted/。
还值得注意的是,如果对象是alpha,则cacheAsBitmap不起作用。
http://www.republicofcode.com/tutorials/flash/as3cacheasbitmap/
您应该注意到,cacheAsBitmap属性受到非常严格的限制,只有当对象是静态的,或者在舞台上垂直或水平移动时,才会使用缓存的位图。如果您尝试旋转对象、更改其比例、更改其alpha属性或尝试对其执行除更改其形状之外的任何其他操作,则播放器必须重新计算矢量的形状,然后为变换中的每个步骤再次绘制位图版本。如果您将cacheAsBitmap应用于连续旋转的对象或正在以其他方式设置动画的对象,而不是更改其x或y属性,则该过程将消耗比原始矢量图形更多的处理能力,因为不仅必须为动画中的每一步计算矢量,而且还必须为动画中的每一步绘制位图,从而使系统完成两倍的工作!
发布于 2011-04-27 08:23:38
由于渲染图形和处理时间线的方式不同,iOS交叉编译应用程序的性能考虑因素与原生flash应用程序的性能考虑因素略有不同。
下面是一些针对iOS交叉编译进行优化的额外读物。
http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html
http://www.yeahbutisitflash.com/?p=986
它主要涉及位图缓存,精确和有效的边界测量(在使用Flex时尤其重要),并确保您的Actionscript尽可能优化。
https://stackoverflow.com/questions/5187865
复制相似问题