Flash TypeError:错误#1009:无法访问空对象引用的属性或方法-
我只需要创建一个电影剪辑,把它放在舞台上,并给它一个实例名char 文档类Flash TypeError:错误#1009:无法访问空对象引用的属性或方法-,flash,actionscript-3,Flash,Actionscript 3,我只需要创建一个电影剪辑,把它放在舞台上,并给它一个实例名char 文档类 public class Test extends MovieClip { public function Test() { char.x = 1315; char.y = 459; addEventListener(Event.ENTER_FRAME, mouseListen);
public class Test extends MovieClip
{
public function Test()
{
char.x = 1315; char.y = 459;
addEventListener(Event.ENTER_FRAME, mouseListen);
}
private function mouseListen(e:Event) {
char.x = mouseX;
char.y = mouseY;
}
}
错误
TypeError:Error#1009:无法访问null的属性或方法
对象引用。在com.me::Test/::mouseListen()上
它怎么可能知道构造函数中的“char”是什么,而不知道
mouseListen
函数中的“char”是什么?还可能是什么?我在本地重建了它,效果很好。跟着鼠标。还有其他丢失的代码吗?我注意到您没有包定义。这个类是主文件的文档根,还是将这个swf加载到另一个swf中
package
{
import flash.display.*;
import flash.events.*;
public class Test extends MovieClip
{
public function Test()
{
char.x = 1315; char.y = 459;
addEventListener(Event.ENTER_FRAME, mouseListen);
}
private function mouseListen(e:Event)
{
char.x = mouseX;
char.y = mouseY;
}
}
}
有同样的问题,只是解决它(我想)。我把我的按钮所在的图层移到了顶层,在我的代码层之上,瞧……一个愚蠢的flash东西。然后我把它移到下面一层,它仍然可以工作,只是在我原来的地方不到两层。(1)char是一个保留字。不要用它 (2) 调试1009的第一步是在尝试更改之前进行存在性检查。它将让您确定它是否愚蠢,比如对象还没有出现在舞台上,因为它添加到了稍后的关键帧中,等等 不过,在这种情况下,您不需要这样做,因为您的范围已关闭。在事件侦听器中,由于您将其添加到了char中,因此在函数本身内部,您将获得带有“this”关键字的“char” 请尝试以下操作:
public function Test()
{
char.x = 1315; char.y = 459;
addEventListener(Event.ENTER_FRAME, mouseListen);
}
private function mouseListen(e:Event)
{
this.x = mouseX;
this.y = mouseY;
}
是的,我只是没有包括包定义。显然,它正在查找类,因为它在mouseListen()中抛出了错误。我让“char”跟随鼠标,但它首先抛出错误。另外,如果我说char.alpha=0,它就不起作用(char仍然可见)。你在舞台上给char一个实例名了吗?在flash Pref中是否启用了“自动声明阶段实例”?