我想知道如何在flash as3中定位特定對象/實例。我在舞臺上有2個物體,現在我們將其稱爲obj1
和obj2
(帶有實例名稱)。我試圖根據obj2
的y
的位置獲得ob1
的轉速。我想把代碼放在obj1
之內,所以我想如果我想從obj1
裏面找到obj2
我只是想用this.rotation = this.obj2.y/10;
之類的東西,但是由於某種原因,這個東西只是保持它的旋轉。我使用本地代碼編輯器頂部的「目標」按鈕,但仍然給了我相同的this.obj2
。有任何想法嗎?提前致謝。在AS3中定位對象
回答
假設這兩種DisplayObjetcs彼此相鄰stage ,他們有一個共同的父,所以辦法從OBJ1「目標」 obj2的是:
this.rotation = this.parent.getChildByName("obj2").y/10;
換句話說,除非你建立自己的其他DisplayObjetcs引用就像潘的回答,您可以參考它們通過他們在分層display list中的位置。
謝謝,但是當我這樣做時,我得到一個錯誤? _1119:_ _訪問_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Display _ Display _另外obj2實際上被稱爲滑塊。 –
對不起,我在AS3中使用AS2語法(可能被示例代碼愚弄了:),您需要使用getChildByName()。答案已更新。 –
如果你想更新基於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;
}
}
謝謝,但我已經有了一個ENTER_FRAME監聽器。如果我使用'this.rotation ++;'它會轉而以相當慢的速度(每秒1度60次)。至於'this.obj2.y',它並不是針對這個對象,所以我想知道這條線是否有一個輕微的替代,只能讓它在'obj1'裏面定位'obj2'。 –
你有沒有改變obj2 refrerence?像obj2 = new type()?當obj2移動時,你可以追蹤obj2的y。 – Pan
- 1. AS3定心對象
- 2. 定時器在AS3中的對象
- 3. AS3 - 使對象模糊特定對象
- 4. 對象和定時器AS3
- 5. 如何手動定位AS3中的Camera對象?
- 6. 推對象在AS3
- 7. 訪問AS3中的特定對象
- 8. 在對象內定位CSS對象
- 9. AS3類對象?
- 10. Starling AS3 - 如何在SWC中使用位圖對象
- 11. SpriteKitScene中的對象定位
- 12. 定位對象中的JavaScript
- 13. AS3自定義對象到ByteArray然後到自定義對象
- 14. AS3中的對象障礙?
- 15. 合併AS3中的對象
- 16. AS3中的XML到對象
- 17. 動態對象,如在AS3
- 18. AS3定位在陣列中糾結
- 19. 在Unity 3D中確定對象位置
- 20. 在Swing卡布局中定位對象
- 21. 如何在iText中定位PDFGraphis2D對象?
- 22. 在HTML(Div/CSS)中定位對象
- 23. AS3:在庫對象中使用beginBitmapFill()
- 24. 在網格AS3中平鋪對象
- 25. 在as3中拖動一個對象
- 26. as3 - 玩家在對象中移動
- 27. 在AS3 Flex中排序對象/映射?
- 28. as3對象值NativeText
- 29. AS3對象過濾
- 30. AS3對象到JSON
你什麼時候調用this.rotation = this.obj2.y/10? – Pan
在'obj1'裏面的_actions_框架中,如果你問我是否使用了一個事件監聽器,那麼是的,它是以'this.addEventListener(Event.ENTER_FRAME,rotate);'開頭的,然後有一個函數'this .rotation = this.obj2.y/10;'裏面有一些閃爍的顏色的東西:D –