读书人

为什么这里stage.stageWidth不能用呢?

发布时间: 2012-04-01 17:23:46 作者: rapoo

为什么这里stage.stageWidth不能用呢?
在ActionScript3的文档类的构造函数里面有一句这样的语句。

Java code
paintBmpData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0x0FFFFFF);paintBmp = new Bitmap(paintBmpData,'auto',true);

但是在执行的时候却出现了下面的错误。
Assembly code
TypeError: Error #1009: Cannot access a property or method of a null object reference.    at MTTestMC/Init()    at MTTestMC()    at MTTest()


如果把上面的代码stage.stageWidth和stage.stageHeight换成具体的数字就正常了。
Java code
paintBmpData = new BitmapData(800,600,true,0x0FFFFFF);


请问为什么呢?

[解决办法]
因为你的执行脚本的时候,stage还没有构造。
最有效的办法是加入enterFrame监听,执行后再移除这个监听。把有关stage的代码卸载方法里。

还有一种方法,不过并不推荐。setTimeOut(1,方法);延时1毫秒后执行。

读书人网 >Flash

热点推荐