我一直在创建一个超媒体播放器,我已经到了一个小故障的阶段,它显然是......
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at AvalancheCityHypermediaPlayer_fla::MainTimeline/fl_CustomMouseCursor()
这是我的代码:
import flash.events.Event;
cust_cursor.mouseEnabled= false;
cust_cursor.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor);
function fl_CustomMouseCursor(event:Event)
{
cust_cursor.x = stage.mouseX;
cust_cursor.y = stage.mouseY;
}
Mouse.hide();
我不确定为什么它不能正常工作,基本上当一个按钮悬停在它上面意味着跳到第2帧并停止,但它跳到那个帧,然后直接跳到第1帧而不停在第2帧,并在第1帧停止。
答案 0 :(得分:0)
1。您的错误未生成行号。你(和我)会发现这对于调试非常宝贵;如果在Flash IDE中,您可以在swf首选项下的“发布设置”中将其设置为标题为“允许调试”的切换。
2。此代码是在类中还是在文档代码中(例如,Flash IDE“操作”选项卡)?如果它在类中,请确保将阶段的引用传递给类的构造函数并将其分配给内部持久变量,以便fl_CustomMouseCursor可以解决它。默认情况下,类没有引用阶段的内部方式,我假设这是产生#1009错误的原因。
例如,在类构造函数中......
package com.example {
public class MyClass {
private var stage;
public function MyClass(arg) {
stage = arg;
}
}
}
在实例化课程之外......
var myObj:MyClass = new MyClass(stage);
3。如果您希望代码停留在框架上,请使用stop();
或gotoAndStop()
4。最后,如果您正在使用Flash IDE进行编译,则可以对其进行调试,并确切了解运行时环境中存在问题的堆栈中的哪个变量。您可以从调试菜单或使用control-shift-enter
进行编译来访问它。