ios - 外部SWF在iOS上播放速度非常慢

标签 ios actionscript-3 apache-flex air flex4.6

我正在使用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/

相关文章:

actionscript-3 - 构造函数之外的实例化之间有什么区别吗?

actionscript-3 - 如何在 ActionScript 中将文件名与文件夹分开?

javascript - Flex vs. jQuery vs. GET vs./Closure vs. Cappuccino vs. 纯 JS 和 HTML5?

apache-flex - 如何确定一个字符串是否包含特定的子字符串

apache-flex - Flex 辅助功能 - Tab Focus 退出 Flex 应用程序

ios - Swift 中的二进制文件 IO

android - 我应该为 iOS(Game Center) 和 Android(Google Play Games) 创建不同的项目吗?

ios - 在 DispatchGroup 中执行 Completion Handler

iphone - 在 iPhone 上注册电子邮件和其他推送事件

apache-flex - 如何以编程方式从 flex 组件中删除验证