Flex SDKを使用した埋め込みSWFアセットでタイムラインスクリプトを使用できますか?

StackOverflow https://stackoverflow.com/questions/1408951

質問

クラス定義の上に次の構文を使用して、クラスにSWFを埋め込みました:

[埋め込み(source = '/ .. / assets / MyMovieClips.swf'、symbol = 'SpecialMovieClip')]
パブリッククラスSpecialMovieClipはMovieClipを拡張します

MovieClipアセットはクラスにリンクされているようで、インスタンス化されて表示されますが、表示されますが、

  • そのクリップ内のステージに配置されたインスタンスにアクセスできません。
  • タイムラインスクリプトは機能していないようです。

これは、Flex SDKでコンパイル時にSWFファイルを埋め込むことの欠点ですか? タイムラインスクリプトまたはインスタンスをステージ上に配置する場合は、Flash IDEでのコンパイルに戻る必要がありますか?

役に立ちましたか?

解決

  1. [Embed]タグで埋め込むと、すべてのスクリプトがシンボルから削除されます。 ただし、MovieClip.addFrameScript()を使用してフレームにスクリプトを追加できます。

    public function SpecialMovieClip(){

    addFrameScript(4、myfunc)

    }

    プライベート関数myfunc(){

    stop()

    }

  2. i movieClip.GetChildAt()を使用して、movieClip内のシンボルにのみアクセスできると思います

他のヒント

ドキュメントから:( 「SWFシンボルの埋め込み」にスクロールダウンします)

  

SWFファイルにActionScriptコードが含まれている場合、Flexはコンパイル中に警告を出力し、埋め込みシンボルからActionScriptを取り除きます。これは、シンボル自体のみを埋め込むことができることを意味します。

やりたいことによっては、SWF全体を埋め込むか、実行時にロードする方が良いと思います。

ところで、埋め込みシンボル内のものにアクセスできないことに関して、ターゲットSWFがAS3であることを確認しましたか? AS2コンテンツを埋め込む(または読み込む)場合、相互運用性はLocalConnectionを介してのみ許可されます。これは、リンクしたドキュメントページでも説明されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top