【发布时间】:2013-02-20 06:29:44
【问题描述】:
我真的需要帮助,我已经被这个问题困扰了 2 天。导航回另一个框架时,我不断收到此错误!
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at product_fla::MainTimeline/frog_mcRelease()
frog_mc 继续进入另一帧!!不知道怎么回事。
谢谢
我的代码:
import flash.events.Event;
right_mc.visible=false;
wrong_mc.visible=false;
var orig1X:Number=frog_mc.x;
var orig1Y:Number=frog_mc.y;
var orig2X:Number=queen_mc.x;
var orig2Y:Number=queen_mc.y;
var orig3X:Number=apple_mc.x;
var orig3Y:Number=apple_mc.y;
stage.removeEventListener(Event.ENTER_FRAME, frog_mcRelease);
frog_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragTheObject);
frog_mc.addEventListener(MouseEvent.MOUSE_UP, frog_mcRelease);
queen_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragTheObject);
queen_mc.addEventListener(MouseEvent.MOUSE_UP, queen_mcRelease);
apple_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragTheObject);
apple_mc.addEventListener(MouseEvent.MOUSE_UP, apple_mcRelease);
done_btn.addEventListener(MouseEvent.CLICK, checkAnswers);
reset_btn.addEventListener(MouseEvent.CLICK, reset);
frog_mc.buttonMode=true;
queen_mc.buttonMode=true;
apple_mc.buttonMode=true;
function dragTheObject(event:MouseEvent):void {
var item:MovieClip=MovieClip(event.target);
item.startDrag();
var topPos:uint=this.numChildren-1;
this.setChildIndex(item, topPos);
}
function frog_mcRelease(event:MouseEvent):void {
var item:MovieClip=MovieClip(event.target);
item.stopDrag();
if (drop_frog.hitTestPoint(item.x,item.y)) {
item.x=drop_frog.x;
item.y=drop_frog.y;
} else {
item.x=orig1X;
item.y=orig1Y;
}
};
function queen_mcRelease(event:MouseEvent):void {
var item:MovieClip=MovieClip(event.target);
item.stopDrag();
if (drop_queen.hitTestPoint(item.x,item.y)) {
item.x=drop_queen.x;
item.y=drop_queen.y;
} else {
item.x=orig2X;
item.y=orig2Y;
}
};
function apple_mcRelease(event:MouseEvent):void {
var item:MovieClip=MovieClip(event.target);
item.stopDrag();
if (drop_apple.hitTestPoint(item.x,item.y)) {
item.x=drop_apple.x;
item.y=drop_apple.y;
} else {
item.x=orig3X;
item.y=orig3Y;
}
};
function checkAnswers(event:MouseEvent):void {
if (drop_frog.hitTestPoint(frog_mc.x,frog_mc.y) &&
drop_queen.hitTestPoint(queen_mc.x,queen_mc.y) &&
drop_apple.hitTestPoint(apple_mc.x,apple_mc.y)) {
wrong_mc.visible = false;
right_mc.visible = true;
} else {
wrong_mc.visible = true;
right_mc.visible = false;
}
}
function reset(event:MouseEvent):void {
frog_mc.x=orig1X;
frog_mc.y=orig1Y;
queen_mc.x=orig2X;
queen_mc.y=orig2Y;
apple_mc.x=orig3X;
apple_mc.y=orig3Y;
right_mc.visible=false;
wrong_mc.visible=false;
}
【问题讨论】:
-
是否有可能因为
drop_frog不存在而出错? -
drop_frog 是我的目标,当 frog_mc 投放它时
-
是的,我是从代码 sn-p 中收集到的。我要问的是你确定它存在于代码sn-p的范围内吗?
-
好的,所以我猜这个代码在你的主时间线的第 1 帧上,
drop_frog是否可能在不同的帧上,因此无法访问第 1 帧上的代码?另外,我不明白你说“frog_mc不断进入另一个框架”是什么意思 -
抱歉,如果不访问 FLA,几乎不可能对多帧脚本进行故障排除。
标签: actionscript-3 flash drag-and-drop