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