アップデートをロードすることができないSWF、2012年10月にコンパイルすることが可能であることをこれに追加したい
その完全なハンドラ内のSWFとの対話:
をAdobe AIR 3.5では、「複数のSWFサポート」という機能が導入されており、ローダーを使用して.ipa(サーバーではなくローカルファイル)で配信されたSWFを読み込み、コードを持たせることができます。 adlコンパイラAOTは、.ipaに含まれるSWFをコンパイルし、iOS上でロードして動作させることができます。この機能は-swf-バージョンを必要とすることを
注:
AIR 3.5は、Adobeラボサイト上で、この記事の執筆時点では現在ベータ版で提供されています= 18以上のルートSWF(必ずしもロードされるアセットではない)と、アプリケーションXMLファイルの3.5で終わるAIRネームスペース。
古い答え:動作しないのコードを持つ外部のSWFはAirのADTコンパイラは、あなたのルートSWF(とのみ、あなたのルートSWF)をクロスコンパイルすることである
理由により、Objective-Cのコード消耗品にiOSデバイス[埋め込み] SWFと.ipa(AIR 3.5より前)に含まれるSWFは、クロスコンパイルされません。
私が埋め込まれた資産については、この問題の回避策作成:gameLevel.swfはそれにコードを持っている場合、新たなgameLevel(ので、それは一般的に、iOS版では動作しないだろう、このシナリオで
[Embed(source="gameLevel.swf")]
private var gameLevel:Class;
...
addChild(new gameLevel());
を)だろうLoaderを作成し、SWFバイトコードを解釈します。しかし、上記のSWFをSWFMergeというツールで最初に実行すると、埋め込みSWFが取り出され、ルートSWFにマージされます。その結果、ADTはあなたの埋め込みコードをobjective-Cにコンパイルし、iOSで動作します。新しいgameLevel()は、あなたの資産のインスタンスになります。ローダーではありません。
SWFMergeツール
はここにある:この回避策は、あなたのために働く
http://www.onetacoshort.com/temp/SWFMerge_alpha.swf
LMK場合や、悩みを持っている場合。乾杯! AppleはiOSの中にロードされたコードを実行するためのサードパーティ製のランタイムを許可していないので、正しい
-Jeff
は、SWFファイルにはActionScriptは、許可されていません。タイムラインアニメーションのみを含み、コードを含まないswfファイルをロードして実行することはできますが、それはかなり小さなユースケースです。 –
実際にはswcファイルを使用できますが、ローダーを使用してロードすることはできません。メインアプリケーションへのライブラリとしてそれらを含めることになります。残念ながら、flaがなければ、コードでswcを生成することができない場合があります。 – scriptocalypse
swfファイルをswcファイルとしてパッケージ化することはオプションになります。 swcファイルは実行時にロードされず、コンパイル時にインクルードされます。通常、swcファイルは既存のswfファイルから作成されませんが、swcファイルは拡張子が.swcで、指定された内容の実際のzipファイルに含まれているため、可能です。http://en.wikipedia.org/wiki/Adobe_SWC_file –