Actionscript 3 启动和停止拖动无法正常工作

Actionscript 3 启动和停止拖动无法正常工作,actionscript-3,Actionscript 3,我正在尝试创建一个开始拖动和停止拖动简单的应用程序。但它似乎不能正常工作。它开始拖动,但不会从对象的任何位置掉落 addChild(shampooing); addChild(check_box); check_box.gotoAndStop(2); check_box.x = 40; check_box.y = 550; check_box.addEventListener(MouseEvent.MOUSE_DOWN, dragObject); check_box.addEventListe

我正在尝试创建一个开始拖动和停止拖动简单的应用程序。但它似乎不能正常工作。它开始拖动,但不会从对象的任何位置掉落

addChild(shampooing);
addChild(check_box);
check_box.gotoAndStop(2);
check_box.x = 40;
check_box.y = 550;

check_box.addEventListener(MouseEvent.MOUSE_DOWN, dragObject);
check_box.addEventListener(MouseEvent.MOUSE_UP, stopDragObject);
function dragObject(mn:MouseEvent):void
{
    xPos = check_box.x;
    yPos = check_box.y;

    check_box.startDrag(true);
}
function stopDragObject(l:MouseEvent):void
{
    if (check_box.hitTestObject(getChildByName("shampooing")))
    {
        check_box.x = getChildByName("shampooing").x;
        check_box.y = getChildByName("shampooing").y;
    }
    else
    {
        check_box.x = xPos;
        check_box.y = yPos;
    }

    check_box.stopDrag();
}

除非将
shampooing
对象上的
name
属性显式设置为“shampooing”,否则
getChildByName(“shampooing”)
将抛出错误。由于您已经有了对
洗发水的引用
,您可以将代码更改为:

if (check_box.hitTestObject(shampooing))
{
    check_box.x = shampooing.x;
    check_box.y = shampooing.y;
}