我创建了一个定时器的MC。在MC内部有按钮,用于设置倒计时时间和清除它,一些按钮用于启动和重置计时器,还有一个动态文本字段用于显示时间。每个按钮都有事件监听器和详细的代码。
在舞台上,我有一个按钮,它为舞台添加了一个addchild(计时器),然后我让它可以拖动。但是,当我拖动它时,只有我的第一层,背景层拖动,而影片剪辑的其余部分保持不变。我向计时器添加了一个按钮模式,但是手只显示在背景上,而不是时间文本所在的区域。我还应该做些什么来将整个容器拖到屏幕上?
function addATimer(event:MouseEvent):void
{
var _timer:mc_timer = new mc_timer;
dragArray.push(_timer);
_timer.x = 260;
_timer.y = 157;
_timer.buttonMode = true;
addChild(_timer);
_timer.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
trace (dragArray);
}
// function for the start dragging event.
function startDragging(event:MouseEvent):void
{
draggedObject = MovieClip(event.target)
draggedObject.startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging);
}
//function to stop the draggable object.
function stopDragging(event:MouseEvent):void
{
draggedObject.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragging);
}
谢谢!
答案 0 :(得分:1)
问题在于event.target
引用了您点击的内容(也可以是您添加了侦听器的DisplayObjectContainer
的子代。
event.currentTarget
始终是对您添加侦听器的对象的引用。
在您的情况下,将与拖放功能相关的代码添加到类mc_timer
中是有意义的。