テキスト TLF を含む swf を作成しました。
その後、フレックス モバイル アプリケーションにロードしました。
最初は、ロードするのに多くの問題がありました。
1- まず、Loader を使用し、プロジェクトは Flash Professional で作成したためです。Flash Professional に含まれる Flash ライブラリの ProLoader で読み込むのが一番良い方法です。
2-最終的にロードしてデスクトップのシミュレーターで試したとき、iPadでデバッグおよび高速コンパイルモードで試しました。次のエラーがありました:
エラー #2100: Loader.loadBytes() の ByteArray パラメータの長さは 0 より大きい必要があります。
パブリッシュ設定ライブラリの「コードに結合」オプションを使用して、FLAでswfをコンパイルすることで修正しました。すごい!iPad の TLF が機能します。iOS作品で!
3- しかし、同じコード (以前はデバイスのデバッグで動作していた) のリリースをビルドすると、それを開くと画像しか表示されません。テキストではありません。 リリースではなくデバッグで機能するのはなぜですか??
私が何を忘れたか知っていますか?
よろしくお願いします。
いくつかのコードを追加するために編集
swfs を埋め込み、アイテム レンダラーに読み込みます。リストには ID のデータプロバイダーがあります。そして、IDに対応するswfを各アイテムレンダラーにロードします。
[Embed(source="/bin/histologia.swf")]
public const PAG_01:Class;
[Embed(source="/bin/histologia.swf")]
public const PAG_02:Class;
public function set data( value:Object ):void {
...
var pagAsset:Class = pagesAssets.assets[value];
var pag:MovieClip = new pagAsset();
var SWFClass:ByteArray = pag.movieClipData;
var ldrContext:LoaderContext = new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain));
ldrContext.allowLoadBytesCodeExecution = true;
currentLoader.loadBytes(SWFClass, ldrContext);
¿loadBytes はランタイム コードを意味しますか? =(私はアドビの記事でこれを読みました:
TLF テキストを使用する場合、iOS は実行時に RSL をロードしないため、TLF のライブラリであるコードを swf にマージしました。
私は何をしているのですか?? どのように埋め込んで使用できますか? この答えは私に役立つと思いますが、よくわかりません
更新 2
コードを変更しました。@Jeff Ward の swf マージを使用しましたが、結果は同じです。swf はロードされますが、TLF テキストは表示されません。
var pagAsset:Class = pagesAssets.assets[value];
var pag:MovieClip = new pagAsset();
addChild(pag);
どうして??