游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2288|回复: 0

讲解As3为何无法访问空对象引用

[复制链接]

12

主题

12

帖子

73

积分

注册会员

Rank: 2

积分
73
发表于 2013-9-4 09:44:22 | 显示全部楼层 |阅读模式
AS3 flash cs4自带的编译器实在是太一般,只报错误,不曝错误行,最让人郁闷的是 “无法访问空对象引用的属性或方法” 只指出错误文件而不报错误行。
这个错误的原因是访问,设置了空对象的属性或者调用了空对象的方法。
第一点可能:
比如 var obj:Object;
obj.aaa()
当这行错误代码在as文文件中,被flash调用,就会报错。
第二点可能:
最为广泛的是stage对象,如果一个已经编译的swf文件被导入到fla作为一个元件,当这个swf有stage对象的代码,
将把导入的舞台作为它的stage,但是它是无法获取的,因此会造成swf中调用的stage=null,编译器报出“无法访问空对象引用的属性或方法”。
例如stage.displayState=StageDisplayState.FULL_SCREEN
将造成编译错误。这个错误同样会发生在as文档类中。如果a是某fla的文档类,a中实例化另一个b类,如果b类中有stage对象,或者其他空对象,就会报错。请仔细检查。
解决方法:增加    对象名.addEventListener(Event.ADDED_TO_STAGE, 处理函数名),然后在处理函数里写stage相关的操作。注意只可在此函数里或此函数调用的函数里写。还要import flash.events.Event
第三点可能:flash actionscript 3.0 动画教程
Load一个大文件时,没有侦听COMPLETE事件,就急忙为这个文件的Loader赋值各种参数,由于没有加载完全,将导致找不到对象。
解决方法:Loader.addEventListener(Event.COMPLETE,setting)setting为加载完毕执行的函数
并记得 import flash.events.Event
第四点:没有addChild到容器内

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 08:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表