我正在使用as3和Adobe Air编写一个应用程序,该应用程序加载外部SWF文件并在应用程序内部播放它们。该容器在android上工作正常,外部swf文件的动画非常酷。
但是,在iOS(iPad 2)上,它运行速度非常慢,好像每秒只播放1帧。
无论如何,有没有它可以使播放速度更快。
我的应用程序配置如下:
<initialWindow>
<autoOrients>false</autoOrients>
<aspectRatio>landscape</aspectRatio>
<renderMode>gpu</renderMode>
<fullScreen>false</fullScreen>
<visible>true</visible>
<softKeyboardBehavior>none</softKeyboardBehavior>
</initialWindow>
这是我加载外部swf的代码部分:
public function set url(value:String):void
{
_url = value;
object.source = File.applicationDirectory.resolvePath(value).url;
object.addEventListener(Event.COMPLETE , onLoaded);
}
protected function onLoaded(event:Event):void
{
object.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
protected function onEnterFrame(event:Event):void
{
if((object.content as Object).currentFrameLabel == "stop")
(object.content as Object).stop();
}
我还尝试注释Enter框架事件侦听器,但未进行任何更改。
提前致谢。
编辑:
我发现实际上有些很奇怪的东西。当我从具有快速配置的应用程序中运行该应用程序时,它运行得很快。但是,当我发布它或在运行时使用“标准”选项时,它的运行速度非常慢。
经过AIR 3.2测试
最佳答案
尝试将渲染模式设置为直接:
<renderMode>direct</renderMode>
请记住,当您仅向GPU进行渲染时,如果要渲染动画,它将使速度变慢。尽管渲染到GPU的速度很快,但将视频内存分配给GPU的速度却很慢。如果您为GPU提供独占性,则在每一帧上,视频内存都需要更新。
另一件事是,所有矢量都将被栅格化,因此某些事物将呈现像素化。
关于ios - 外部SWF在iOS上播放速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481174/