Flex SDKを使用した埋め込みSWFアセットでタイムラインスクリプトを使用できますか?
-
05-07-2019 - |
質問
クラス定義の上に次の構文を使用して、クラスにSWFを埋め込みました:
[埋め込み(source = '/ .. / assets / MyMovieClips.swf'、symbol = 'SpecialMovieClip')]
パブリッククラスSpecialMovieClipはMovieClipを拡張します
MovieClipアセットはクラスにリンクされているようで、インスタンス化されて表示されますが、表示されますが、
- そのクリップ内のステージに配置されたインスタンスにアクセスできません。
- タイムラインスクリプトは機能していないようです。
これは、Flex SDKでコンパイル時にSWFファイルを埋め込むことの欠点ですか? タイムラインスクリプトまたはインスタンスをステージ上に配置する場合は、Flash IDEでのコンパイルに戻る必要がありますか?
解決
-
[Embed]タグで埋め込むと、すべてのスクリプトがシンボルから削除されます。 ただし、MovieClip.addFrameScript()を使用してフレームにスクリプトを追加できます。
public function SpecialMovieClip(){
addFrameScript(4、myfunc)
}
プライベート関数myfunc(){
stop()
}
-
i movieClip.GetChildAt()を使用して、movieClip内のシンボルにのみアクセスできると思います
他のヒント
ドキュメントから:( 「SWFシンボルの埋め込み」にスクロールダウンします)
SWFファイルにActionScriptコードが含まれている場合、Flexはコンパイル中に警告を出力し、埋め込みシンボルからActionScriptを取り除きます。これは、シンボル自体のみを埋め込むことができることを意味します。
やりたいことによっては、SWF全体を埋め込むか、実行時にロードする方が良いと思います。
ところで、埋め込みシンボル内のものにアクセスできないことに関して、ターゲットSWFがAS3であることを確認しましたか? AS2コンテンツを埋め込む(または読み込む)場合、相互運用性はLocalConnectionを介してのみ許可されます。これは、リンクしたドキュメントページでも説明されています。