【发布时间】:2016-06-14 16:03:41
【问题描述】:
我想制作一个允许用户将图片与包含单词首字母的框匹配的 Flash 应用程序。该方法是与目标拖放。我真的很陌生。
拖放目标到目前为止工作,但我的问题是当我移动对象后退出框架时,拖放对象仍然可见。
如何在离开框架时删除这个对象?
这是我得到的:
import flash.events.MouseEvent;
import flash.display.DisplayObject;
var objectoriginalX:Number;
var objectoriginalY:Number;
a.buttonMode = true;
a.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
a.addEventListener(MouseEvent.MOUSE_UP, dropObject);
function pickupObject(event:MouseEvent):void
{
event.target.startDrag();
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;
}
else
{
event.target.x = objectoriginalX;
event.target.y = objectoriginalY;
}
}
谢谢,任何建议都将不胜感激
已编辑:这是我用来移动到其他场景的代码
HOME1.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene_15);
function fl_ClickToGoToScene_15(event:MouseEvent):void
{
MovieClip(this.root).gotoAndStop(2, "Scene 1");
}
【问题讨论】:
-
如何进入下一帧?当您使用
addChild来作为对象的父对象或重新设置对象时,您需要使用removeChild来摆脱它。一旦重新设置父级(如果最初在时间轴上设置父级),时间轴将不再影响对象。看起来您可能需要做的就是手动清除所有孩子,然后再继续下一帧removeChildren(); nextFrame();。 -
我尝试使用按钮单击来移动下一帧。我已经尝试过使用 removeChildren();但它给了我一个错误 1180:调用可能未定义的方法 removeChildren。这里真的需要帮助。谢谢。
-
您需要出示您的相关代码。更新您的问题并包含您用于转到下一帧的代码。
-
感谢您的回复,已经更新并包含我用来转到其他场景的代码。非常感谢您的帮助。
-
removeChildren 仅适用于 Flash Player 11 或更高版本。你输出的是什么版本?
标签: actionscript-3 flash drag-and-drop flash-cs5