AS3.0实例化类的时候出现了错误
比如说我创建一个main,在flash里场景里使用它main代码如下:package{importflash.display.Sprite;publicclassmain...
比如说我创建一个main,在flash里场景里使用它main代码如下:
package
{
import flash.display.Sprite;
public class main extends Sprite
{
var i1:int = 0;
var t1:thunder;
public function main()
{
t1 = new thunder();
this.addChild(t1);
}
}
}
然后我创建一个thunder的类代码如下:
package
{
public class thunder extends Sprite
{
public function thunder()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,onMD);
}
public function onMD(E:MouseEvent)
{
}
}
}
然后输出窗口报错:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at thunder()
at main()
如果把stage去掉就不会报错。但是onMD()里的代码就不会运行。。。 展开
package
{
import flash.display.Sprite;
public class main extends Sprite
{
var i1:int = 0;
var t1:thunder;
public function main()
{
t1 = new thunder();
this.addChild(t1);
}
}
}
然后我创建一个thunder的类代码如下:
package
{
public class thunder extends Sprite
{
public function thunder()
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,onMD);
}
public function onMD(E:MouseEvent)
{
}
}
}
然后输出窗口报错:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at thunder()
at main()
如果把stage去掉就不会报错。但是onMD()里的代码就不会运行。。。 展开
展开全部
stage指的是swf,显示列表最顶层的元素,你在thunder无法调用。要在thunder 类里调用需要指定父类。this.parent.parent.n,这要看你的thunder 类相对于main是几层的子类(显示层列表,不是继承)
追问
怪不得。。我去试试
追答
遇到问题不会自己在网上找解决的方法,上面的我弄错了,stage类直接在任何继承自DisplayObject的子类里直接调用属性stage就可以了;
this.addEventListener(MouseEvent.MOUSE_DOWN,onMD);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询