0

所以我对 Actionscript 还很陌生,但是我在函数和事件侦听器方面做得很好,所以我想知道是否有人可以告诉我解决我的项目正在发生的事情。

所以我有一个基本的拖放功能,但是当我运行这个代码时,它会移动舞台上的所有东西,从所有不同的图层和框架中,我不希望这种情况发生,我只想拖动各种对象

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");
}

这是我的命中测试对象代码。

4

1 回答 1

0

您正在“根”级容器上调用 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();
}

老实说,如果您计划拥有多个 Draggle 对象,我会使用 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();
}
于 2013-04-14T16:07:53.653 回答