读书人

为啥这里stage.stageWidth不能用呢

发布时间: 2013-01-04 10:04:14 作者: rapoo

为什么这里stage.stageWidth不能用呢?
本帖最后由 Atom2004 于 2011-11-21 12:47:48 编辑 在ActionScript3的文档类的构造函数里面有一句这样的语句。

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

但是在执行的时候却出现了下面的错误。
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换成具体的数字就正常了。
paintBmpData = new BitmapData(800,600,true,0x0FFFFFF);


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

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

读书人网 >Flash

热点推荐