簡體   English   中英

顯示對象深度

[英]displayobject depth

我創建了一個具有階段的游戲客戶端,它將游戲實例作為子級加載,游戲實例創建了一個新的動畫片段拼貼,並將其添加到游戲實例階段。 tileet有其自己的舞台,它會作為子圖塊(游戲地圖),項目,菜單和英雄加載。 當我點擊一個項目時,它將在子視圖集中添加一個動畫片段作為子項,並在該動畫片段中加載一個外部swf,從而在內部創建一個新的子項。

問題是,當我通過Flash用air調試器測試它們時,所有子代都工作正常,但是當我發布並安裝它時,並不能向我顯示加載的外部swf的動態部分。

我想知道舞台上有多少個孩子是否受到限制,還是我達到了深度限制。

您尚未對DisplayObject如此迅速地達到極限,這實際上有點可笑,與3 deep :)相比,我參與了創建的一些顯示樹有多深。

問題是在這種情況下加載外部swf,您必須記住代碼實際上是交叉編譯的,可以在特定平台上運行。 這意味着(根據我的最佳評價),轉換過程中可能已經考慮了字節序,字節順序,字長以及其他CPU和/或平台特定的屬性(更不用說向下編譯/交叉編譯到Dalvik了, android JVM,字節碼或A4 / A5機器代碼,不確定在其中調用了什么實際指令集)。 我決定深入研究,因此我將項目導出為APK,使用7-zip打開APK,找到了swf(並看到了圍繞它構建的所有其他結構),提取了swf並將其放在旁邊在bin-debug文件夾中以在AIR調試器中進行測試。 用7-zip打開這兩個文件,bin調試中的swf中有大量DoABC文件,而同一程序的apk版本中只有一個。 進一步檢查需要使用十六進制編輯器,因為許多文件只有4個字節,因此無法使用任何普通的文本編輯器讀取它們。 如果以調試模式在設備上運行它,則可能會出現某種錯誤。

無論如何,最好的技術選擇是在運行時以“純”格式(即mp3,png)加載資產。 您也可以將它們壓縮以節省空間,並從此處使用zip庫: http : //nochump.com/blog/archives/15

除了加載實際的swfs之外,使用外部加載的swf應該可以實現我能想到的所有功能。

另外,若要深入了解所有無用的swf的全部內容,請查看SDK中的swfdump.jar實用程序(用谷歌搜索,將我的4MB swf吹成一個100 MB的XML文件,並說明所有內容...之類的,我使用“第一個對象XML編輯器”仔細閱讀像這樣的無意義XML)我使用那個jar編寫了一個maven插件,該插件可以找出源代碼中定義的哪些類不會最終出現在生成的swf中,以幫助清理孤立的代碼。

暫無
暫無

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

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