0

私は始めたばかりなので、私は AS3 の初心者です。ムービークリップ内に 2 つのムービークリップがあります。メイン mc は main_mc と呼ばれ、次に内部に trigger_mc と move_mc という名前の 2 つのムービークリップがあり、trigger_mc には start_ani のインスタンス名があり、タイムライン内にあります。 main_mc の私はこのコードを持っています:

import flash.events.MouseEvent;

start_ani.addEventListener(MouseEvent.CLICK, correctans);

function correctans(e:MouseEvent):void {
    move_mc.animate();
}

次に、move_mc を使用して actionscript 3.0 としてモーションを作成し、move_mc 自体のタイムライン内にコードを挿入し、アニメーションと呼ばれるそのモーション用の関数を作成しました。私の問題は、両方が内部にある 2 つのムービークリップ間の関数にアクセスする方法です。別のムービークリップ、私はこの方法が賢明なプログラミングではないことを知っていますが、私はちょっとこれを学ぶ必要があります.plsは私を助けてください.私はこれがひどく必要です.

4

1 に答える 1

0

親は関数ではなくプロパティです - () は必要ありません:

this.parent.move_mc.animate();

また、move_mc ムービークリップのインスタンス名について言及していませんでしたが、上記のようなアクセスではインスタンス名が move_mc である必要があります。ムービークリップのシンボル名は actionscript では関係ありません。

更新 1:明確にするために、次のように言いました: trigger_mc のインスタンス名は start_ani です

よし、このコードは動作します:

start_ani.addEventListener(MouseEvent.CLICK, correctans);

しかし、あなたは言いませんでした: move_mc のインスタンス名は ???

したがって、このコードが機能するかどうかはわかりません。

function correctans(e:MouseEvent):void {
    ???.animate();
}

それらを記入してください??? 1つ。

更新 2: クリック ハンドラーが起動されているかどうか知っていますか? trace ステートメントを追加してみませんか?

function correctans(e:MouseEvent):void {
    trace("got click event!");
    ???.animate();
}

CLICK イベントの場合、以下が必要です。

start_ani.buttonMode = true;

あなたが言うように、これは 2 つのムービークリップが同じ親の兄弟であることを前提としているため、良いプログラミング方法ではありません。拡張可能ではありません。そうでない場合、コードでエラーがスローされる可能性があります。それを覚えておいてください。

于 2013-08-16T13:20:22.830 に答える