0

ライブラリ アセットのみを含み、コードを含まない swf があります。コードを持つ別のswfによってロードされます。

ライブラリ swf には、AS3 用にエクスポートされた約 280 のシンボルがあります。TextField ではなく、TLFTextField を含む新しいムービークリップを作成するまで、すべて正常に動作します。swf をビルドすると、警告やエラーは表示されませんが、実行時にライブラリ swf からアセットをロードできません。hasDefinition は、すべてのアセットに対して常に false を返します。

私は 010 Editor を使用して swf 内のすべての定義を確認した同僚に swf を渡しましたが、彼はそこにシンボルがないと言いました。TLFTextField を削除し、swf を再構築して、もう一度彼に渡しました。彼は、今では 280 のシンボルがあると言いました。

TLFTextfield を作成してコンパイルすると、コンパイル時に警告やエラーが発生しなくても、swf 内のすべてのシンボルが台無しになります。なぜこれを行っているのかについて何か考えはありますか?ところで私はCS5を使用しています。

4

1 に答える 1

0

デフォルトでは、textLayout.swc (TLFTextField によって使用される) は RSL として (別の SWZ ファイルに) エクスポートされ、SWF にはプリローダー SWF スタブが追加され、SWZ ファイルのロードが処理されます。

プリローダーがどのように追加されるのかわかりませんが、Flashdevelop で SWF を調べると、プリローダーからのシンボルしか表示されません。Action Script 用にエクスポートしたシンボルではなく、メインの SWF がプリローダー スタブに追加され、プリローダーによって何らかの方法で読み込まれると想定しています。

Publish Settings -> Action Script 3.0 settings -> Library tab -> textLayout.swc を選択し、下部で Default Linkage を「Merged into code」に変更する必要があります。これで問題が解決することを願っています。

于 2011-11-05T19:45:43.767 に答える