我有一个带有位图250x130的介绍屏幕,我想淡入淡出。 我正在使用tweenlite,它在Pc看起来很棒,但在iPhone上看起来很棒 像1或2 fps,真的很慢。 只有2个文本字段和动画Bitmap。电影设置为 默认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;在第1帧。
感谢
答案 0 :(得分:1)
iOS交叉编译应用程序的性能考虑因素略有不同,因为它们用于呈现图形和处理时间线的方式不同,因此它们适用于本机Flash应用程序。
以下是优化iOS交叉编译的额外阅读。
http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html
http://www.yeahbutisitflash.com/?p=986
主要涉及位图缓存,准确有效的边界测量(在使用Flex时尤为重要),并确保您的Actionscript尽可能优化。
答案 1 :(得分:1)
使用Starling(http://gamua.com/starling/)有时是在移动设备上获得良好性能的唯一方法,因为它在设备上完全使用GPU。
从Adobe网站(http://help.adobe.com/en_US/as3/mobile/WS901d38e593cd1bac-3d719af412b2b394529-8000.html):
在AIR应用程序中启用硬件图形加速 包括应用程序描述符中的gpu (或直接使用Stage3D)。您 无法在运行时更改渲染模式。在台式计算机上,使用 gpu将回归到 直接
注意:为了利用AIR加速Flash内容的GPU加速 对于移动平台,Adobe建议您使用 renderMode =“direct”(即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属性之外,还有动画, 该过程将消耗比原始处理能力更多的处理能力 矢量图形因为不仅需要计算矢量 对于动画中的每个步骤,但位图也必须是 为制作系统的动画中的每一步绘制 把工作翻倍!