0

複数のレイヤーがある映画があります。アクションレイヤーでは、最初のフレームにActionscript3.0スクリプトがあります。テキストレイヤーには、ステージ全体で合計240フレーム移動するテキストがあります。swfはC#プログラムから呼び出されます。

私が抱えている問題は、ムービーがタイムラインのフレーム1にない限り、アクションスクリプトが実行されないことです。それ以外のときに関数を呼び出そうとしても、何も起こりません。キーフレームをフレーム1から他のフレームにコピーしようとすると、関数/変数が重複しているというエラーが表示されます。タイムラインのどこかで同じスクリプトを呼び出す方法はありますか?

助けてくれてありがとう。

ゲイリー

4

1 に答える 1

1

ムービークリップの各フレームは別々のままですが、最終的にはの概念を見るthisとすべて同じオブジェクトです。1つのフレームの関数名が、であると仮定するとdoStuff()、別のフレームdoStuff()関数にすべてのフレームをコピーできますが、使用できない場合は、重複違反が発生します。すべてのフレームが最終的に同じMovieClipリファレンスになるためです。唯一の違いはそのフレームです。

これは、ソリューションの3つのオプションです。

  1. すべてのフレームは、異なる名前で関数名を定義します
  2. 1フレームは、メインステージフレームにスクリプトコードを記述します。他のシンボルの内部フレームは関数呼び出しを機能させます。
  3. フレームを変更する場合、各フレームはイベントをディスパッチする必要があります。このイベントをMainStageフレームでリッスンし、制御します。
于 2012-08-16T00:23:13.567 に答える