[AS3]使用stage出错的问题。
2007-7-29
这两天看AS3 cookbook和AS3的帮助文档,里面很多代码执行后都会出现“TypeError: Error #1009: 无法访问空对象引用的属性或方法。”这个错误。几经周折,才知道解决办法:使用addEventListener( Event.ADDED_TO_STAGE, enterDLHandle ),把要用的stage代码放到enterDLHandle里面,就没问题了。不知道有没有其他解决方法,知道的说声啊~
在经典论坛上提问这个问题,终于有人做出全面回答了,在此感谢zjs35
首先要明白stage是什么意思,stage是显示对象的一个引用舞台的属性,如果显示对象不在显示列表中,即没有用addChild()添加,stage等于null,你的问题就在这里。
使用stage有下面几种方法:
1、文档类的构造函数中可以直接使用stage属性
2、非文档类可以通过参数传递到类里面。
class Test extends Shape
{
function Test(stage:Stage)
{
}
}
3、不想传递参数时,要注意代码的顺序。
class Test extends Shape
{
function Test()
{
}
functon useStage()
{
trace(stage)
}
}
这样使用
var test=new Test()
test.useStage()//null,你的问题出在这里
addChild(test)//添加到显示列表后,就可以使用stage属性。
test.useStage()//[object Stage]
总之,理解stage是显示对象的属性,位于显示列表中的显示对象的stage才引用舞台
使用stage有下面几种方法:
1、文档类的构造函数中可以直接使用stage属性
2、非文档类可以通过参数传递到类里面。
class Test extends Shape
{
function Test(stage:Stage)
{
}
}
3、不想传递参数时,要注意代码的顺序。
class Test extends Shape
{
function Test()
{
}
functon useStage()
{
trace(stage)
}
}
这样使用
var test=new Test()
test.useStage()//null,你的问题出在这里
addChild(test)//添加到显示列表后,就可以使用stage属性。
test.useStage()//[object Stage]
总之,理解stage是显示对象的属性,位于显示列表中的显示对象的stage才引用舞台
羡慕有人指导