Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在拖放中使用flash时,在flash中鼠标向上和向下的问题_Flash_Actionscript 3_Mouseevent_Flash Cs5 - Fatal编程技术网

在拖放中使用flash时,在flash中鼠标向上和向下的问题

在拖放中使用flash时,在flash中鼠标向上和向下的问题,flash,actionscript-3,mouseevent,flash-cs5,Flash,Actionscript 3,Mouseevent,Flash Cs5,您能帮我找出是什么原因导致我的程序出现意外输出吗?我使用了flash cs5和as3。这是一个拖放游戏 没有发现错误,但我的鼠标向上和鼠标向下没有按预期方式运行。(在我看来) 我这样说是因为,当我测试代码时,当我单击对象时。鼠标下键有点像点击之类的功能。我不能扔下这个物体 这是我用于拖放的代码集 wintersquash_mc.buttonMode = true; wintersquash_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupOb

您能帮我找出是什么原因导致我的程序出现意外输出吗?我使用了flash cs5和as3。这是一个拖放游戏

没有发现错误,但我的鼠标向上鼠标向下没有按预期方式运行。(在我看来)

我这样说是因为,当我测试代码时,当我单击对象时。鼠标下键有点像点击之类的功能。我不能扔下这个物体

这是我用于拖放的代码集

 wintersquash_mc.buttonMode = true;
 wintersquash_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
 wintersquash_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject);

 function pickupObject(event:MouseEvent):void
 {
event.target.startDrag(true);
event.target.parent.addChild(event.target);
objectoriginalX = event.target.x;
objectoriginalY = event.target.y;
 }
 function dropObject(event:MouseEvent):void
 {
event.target.stopDrag();
var matchingTargetName:String = "target" + event.target.name;
var matchingTarget:DisplayObject = getChildByName(matchingTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == matchingTarget)
{
    event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
    event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
    event.target.buttonMode = false;
    event.target.x = matchingTarget.x;
    event.target.y = matchingTarget.y;
    scorer++;
    score.text = String(scorer);
}
else
{
    event.target.x = objectoriginalX;
    event.target.y = objectoriginalY;
}
 }

希望有人能告诉我为什么它不能正常工作:(

尝试将您的
鼠标添加到舞台上,而不是您的movieclip。这将确保无论鼠标在哪里,都能捕捉到事件

此外,您可以考虑只添加您的<代码> MouSyUpUp> /Cudio>侦听器,一旦PcPuPoBjjd()运行。

wintersquash_mc.buttonMode = true;
wintersquash_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

function pickupObject(event:MouseEvent):void
{
    event.target.startDrag(true);
    event.target.parent.addChild(event.target);
    objectoriginalX = event.target.x;
    objectoriginalY = event.target.y;
    stage.addEventListener(MouseEvent.MOUSE_UP, dropObject);
}

这将要求您的类具有对Stage对象的引用。此外,您还必须在处理完侦听器后将其从Stage中显式删除。不过,请尝试一下,看看它是否适合您。

我通常会这样处理拖动:

wintersquash_mc.buttonMode = true;

wintersquash_mc.mouseChildren = false;
//this way you won't start dragging i.e. a sub-movieclip of the button

wintersquash_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);

function pickupObject(event:MouseEvent):void
{
    event.target.startDrag(true);

    event.target.parent.addChild(event.target);
    // is it necessary to add the clip to its parent?
    // I would rather make a var on the root,
    // and dump the event.target into that like this:
    // root.nowDragged = event.target;

    objectoriginalX = event.target.x;
    objectoriginalY = event.target.y;
    stage.addEventListener(MouseEvent.MOUSE_UP, dropObject);
}

function dropObject(event:MouseEvent):void
{
    root.nowDragged.stopDrag(true);
    stage.removeEventListener(MouseEvent.MOUSE_UP, dropObject);
    // this removes the listener to prevent false alarms on other mouse ups
    //... (rest of your code)
}

我希望这能有所帮助。

应该是鼠标向下吗?因为当你放下鼠标时,你会按下它。我试着按照你说的做,但目标框就像是从对象上跑开。我的意思是,如果我将wintersquash\u mc对象拖动到TargetSquash\u mc中,目标位置本身就到对象曾经所在的位置。同时,鼠标e_____________________________________________________(