0

フラッシュ as3 で特定のオブジェクト/インスタンスをターゲットにする方法を知りたいです。ステージ上に 2 つのオブジェクトがあります。今のところ、それらobj1を and obj2(インスタンス名で) と呼びます。の位置ob1に基づいて の回転速度を取得しようとしています。コードを内部に配置したいので、内部からターゲットにしたい場合は、次のようなものを使用するだけだと考えましたが、何らかの理由で回転を静止させます。ネイティブ コード エディターの上部にある [ターゲット] ボタンを使用しましたが、同じ結果が得られました。何か案は?前もって感謝します。obj2yobj1obj2obj1this.rotation = this.obj2.y / 10;this.obj2

4

2 に答える 2

0

obj2'y に基づいて obj1 の回転を更新する場合は、ENTER_FRAME ハンドラーで this.rotation = this.obj2.y / 10 を呼び出す必要があります。または、obj2 の y が変更されたら、obj1 で関数を呼び出して回転を変更します。

A が obj1 クラスであると仮定します

解決策 1、enter_frame イベントを使用する

class A {

    private var obj2:Object;

    public function class A($obj2:Object) {
        obj2 = $obj2;

        this.addEventListener(Event.ENTER_FRAME, changeRotation);
    }


    private function changeRotation(e:Event):void {
        this.rotation = this.obj2.y / 10;
    }
}

解決策 2、obj2.y が変更されたときに回転を変更する

class A {

    public function changeRotation(obj2:Object):void {
        this.rotation = this.obj2.y / 10;
    }
}
于 2013-09-01T07:18:49.210 に答える
0

2 つのDisplayObjetcsがstageで隣り合っていると仮定すると、それらには共通の親があるため、obj1 から obj2 を「ターゲットにする」方法は次のようになります。

this.rotation = this.parent.getChildByName("obj2").y / 10;

つまり、パンの回答のように他の DisplayObjetcs への独自の参照を設定しない限り、階層表示リスト内の位置からそれらを参照できます。

于 2013-09-01T10:13:07.227 に答える