我想知道如何在flash as3中定位特定的对象/实例。我在舞台上有2个对象,现在我们称它们为obj1
和obj2
(带有实例名称)。我试图让ob1
的轮换速度基于obj2
的{{1}}位置。我想将代码放在y
内,所以我想我是否想从obj1
内部obj2
定位我只是使用类似obj1
的内容但由于某种原因事情只是保持它的旋转仍然。我使用了本机代码编辑器顶部的“目标”按钮,但它仍然给了我相同的this.rotation = this.obj2.y / 10;
。有任何想法吗?提前谢谢。
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
假设两个DisplayObjetcs在stage上彼此相邻,他们有一个共同的父母,所以从obj1“定位”obj2的方法是:
this.rotation = this.parent.getChildByName("obj2").y / 10;
换句话说,除非您在Pan的答案中设置自己对其他DisplayObjetcs的引用,否则您可以通过它们在分层display list中的位置来引用它们。