簡體   English   中英

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

[英]External swf plays very slow on iOS

我正在使用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提供排他性,則每一幀都需要更新視頻內存。

另一件事是,所有矢量都將被柵格化,因此某些事物將呈現像素化。

有兩件事:

您不允許在AIR for iOS中加載其中包含任何代碼的SWF。 蘋果公司禁止這樣做。

在為iOS編譯時,最多只能將swf用作圖形/資源庫。 如果里面的動畫片段具有stop(); 在其中一個框架上,則在引擎蓋下計為“ addFrameScript()”,這意味着SWF包含ActionScript。

我建議如果您需要這樣的功能,請創建一個預定義行為的列表以將其編譯到您的主應用中,然后根據要從SWF庫實例化的資產的類型或名稱來運行這些行為,並在運行時將其附加。

此外,如果您這樣做是為了允許更新-或具有在發布后修改應用程序的能力,那么您也可以將其編譯到發布版本中,並在下次要更新該應用程序時重新發布。 這將在一定程度上幫助您在應用商店中排名,並消除許多版本控制問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM