我正在尝试在flash上创建一个拖放游戏。但我最终得到一个错误,#error1083的语法错误,否则是意外的。 错误显示在第42行,我不知道我应该错误哪一行。
有人能告诉我代码有什么问题吗?
以下是代码
import flash.events.MouseEvent;
var objectoriginalX:Number;
var objectoriginalY:Number;
blue.buttonMode = true;
blue.addEventListener(MouseEvent.MOUSE_DOWN, pickObject);
blue.addEventListener(MouseEvent.MOUSE_UP, dropObject);
green.buttonMode = true;
green.addEventListener(MouseEvent.MOUSE_DOWN, pickObject);
green.addEventListener(MouseEvent.MOUSE_UP, dropObject);
red.buttonMode = true;
red.addEventListener(MouseEvent.MOUSE_DOWN, pickObject);
red.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 = event.target.name + "target" ;
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 { // here is where i got error 1083
event.target.x = objectOriginalX;
event.target.y = objectOriginalY;
}
}
答案 0 :(得分:0)
删除该行末尾的;
:
if(event.target.dropTarget != null && event.target.dropTarget.parent == matchingTarget);
答案 1 :(得分:0)
关于objectOriginalX和朋友,问题是你没有初始化变量。与初始化为int
的{{1}}不同,0
变量不会初始化为实际值,而是Number
(非数字)。您必须在计算中使用它们之前设置这些值,如...
NaN
...或先将它们设置为起点。此外,您可能正在尝试在初始化之前添加pickObject。 var objectoriginalX:Number = 0;
var objectoriginalY:Number = 0;
初始化为Object
,因此您需要在使用之前将pickObject指定给某些内容。例如,在这一行......
null
... pickObject是否存在?它不能为空;必须在使用之前进行分配。