我想知道如何在 Flash as3 中定位特定对象/实例。我在舞台上有 2 个对象,现在我们将调用它们obj1
和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 类
解决方案一,使用 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
假设两个DisplayObjetcs在stage上彼此相邻,它们有一个共同的父级,因此从 obj1 “定位” obj2 的方法是:
this.rotation = this.parent.getChildByName("obj2").y / 10;
换句话说,除非您像 Pan 的回答那样设置自己对其他 DisplayObjetcs 的引用,否则您可以通过它们在分层显示列表中的位置来引用它们。
于 2013-09-01T10:13:07.227 回答