AS3工作,但我得到一个ReferenceError:错误#1069找不到属性startDrag

时间:2013-09-22 23:27:22

标签: actionscript-3 flash draggable referenceerror

当我点击一个按钮时,你可以创建一个简单的项目,将一个可拖动的MovieClip添加到单元格中,当你点击它时,将MovieClip释放到你点击的X / Y,然后你可以拾取MovieClip并拖动它进入垃圾箱(MovieClip),在那里它自我毁灭。代码工作得很好我可以使用按钮制作多个Movieclip,当我将它们拖到bin中时它们都被破坏但是我不喜欢“错误代码”。

import flash.events.MouseEvent;
var rubbish:my_mc = new my_mc();
btntest.addEventListener(MouseEvent.CLICK, makeRubbish);

function makeRubbish (event:MouseEvent):void {


addChild(rubbish);

rubbish.x = mouseX - 10;
rubbish.y = mouseY - 10;
rubbish.width = 50;
this.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
rubbish.buttonMode = true;
}

function stopDragging (event:MouseEvent):void {
    rubbish.stopDrag()
    event.target.addEventListener(MouseEvent.CLICK, startDragging);
    rubbish.buttonMode = true;
            if (event.target.hitTestObject(bin))
            {
                trace("hit");
                 event.target.name = "rubbish"; 
    removeChild(getChildByName("rubbish"));


            }
}
function startDragging (event:MouseEvent):void {
event.target.startDrag();
this.addEventListener(MouseEvent.CLICK, stopDragging);
}

1 个答案:

答案 0 :(得分:0)

一些指针

  • target的{​​{1}}属性并不总是如此。它实际上是指事件冒泡过程中的当前阶段。尝试使用Event属性。
  • 我还建议将currentTarget方法绑定到舞台上,因为有时候点击时鼠标不会超过拖动。
  • 我会使用stopDragging事件而非MOUSE_UP标准拖动行为。
  • 拖动时,保留对拖动的全局引用,以便在正确的对象上调用CLICK方法。

试试这个

stopDrag