2013-04-14 50 views
0

所以我對Actionscript相當新穎,但是我一直在使用函數和事件偵聽器,所以我想知道是否有人可以告訴我解決了我的項目正在發生的事情。startDrag()flash移動所有父對象而不是它被分配的內容

所以我有一個基本的拖放功能,但是當我運行這段代碼時,它將舞臺上的所有東西從所有不同的圖層和框架中移走,我不希望發生這種情況,我只想分類反對拖動

answer1_word.addEventListener(MouseEvent.MOUSE_DOWN, answer1_drag) 
function answer1_drag(event:MouseEvent):void { 
startDrag(); 
} 

answer1_word.addEventListener(MouseEvent.MOUSE_UP, answer1_drop) 
function answer1_drop(event:MouseEvent):void { 
stopDrag(); 
} 

我想不出什麼不好的代碼,但我會很感激的幫助,謝謝你們!

編輯:議案建議

if(answer1_word.hitTestObject(word_select_box)){ 
trace("Hello"); 
} 

這是我的點擊測試對象的代碼。

回答

0

您正在調用「root」級容器上的startDrag()和stopDrag()。那就是「舞臺」。您需要從要移動的實例調用startDrag()和stopDrag()。

answer1_word.addEventListener(MouseEvent.MOUSE_DOWN, answer1_drag) 
function answer1_drag(event:MouseEvent):void { 
answer1_word.startDrag(); 
} 

answer1_word.addEventListener(MouseEvent.MOUSE_UP, answer1_drop) 
function answer1_drop(event:MouseEvent):void { 
answer1_word.stopDrag(); 
} 

老實說,如果你是在有一個以上的落後對象的規劃,我會抽象掉使用event.target

answer1_word.addEventListener(MouseEvent.MOUSE_DOWN, onDrag) 
answer1_word.addEventListener(MouseEvent.MOUSE_UP, onDrop) 

function onDrag(event:MouseEvent):void { 
event.target.startDrag(); 
} 


function onDrop(event:MouseEvent):void { 
event.target.stopDrag(); 
} 
+0

說實話的人是真正幫助,thankyou的你絕對是公認的答案: ),但如果你不介意幫助你瞭解AS3的知識,我還有一個問題? :) – Aiden

+0

艾登繼續前進併發布,我會盡力回答。 –

+0

嗯,使用此代碼採取建議,你給我我有問題,使用hitTestObject,因爲它根本沒有檢測obeject,我已經嘗試從輸出跟蹤結果,沒有任何工作,如果你可以幫助它會很感激!編輯是在我的原始代碼 – Aiden

相關問題