[原]AS3 无法访问空对象引用的属性或方法

来源:互联网 发布:淘宝找衣服的技巧 编辑:程序博客网 时间:2024/05/16 06:55

2010年05月19日 星期三 22:48

搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了↖(^ω^)↗。这些都是文章备份。勿怪。。

AS3 flash cs4自带的编译器实在是太一般,只报错误,不曝错误行,最让人郁闷的是 “无法访问空对象引用的属性或方法” 只指出错误文件而不报错误行。


这个错误的原因是访问,设置了空对象的属性或者调用了空对象的方法。

第一点可能:

比如 var obj:Object;

obj.aaa()

当这行错误代码在as文文件中,被fla调用,就会报错。

第二点可能:

最为广泛的是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

第三点可能:
Load一个大文件时,没有侦听COMPLETE事件,就急忙为这个文件的Loader赋值各种参数,由于没有加载完全,将导致找不到对象。

解决方法:Loader.addEventListener(Event.COMPLETE,setting)setting为加载完毕执行的函数

并记得 import flash.events.Event

第四点:没有addChild到容器内

一个文件t1.as
-------------------------------------------------
package{
import flash.display.Sprite
public class t1 extends Sprite
{
function t1()
{
var circle = new Sprite();
circle.graphics.beginFill(0x000000, 1)
circle.graphics.drawCircle(0, 0, 15);
addChild(circle);
circle.graphics.endFill();
}
}
}

-------------------------------------------------------
另一个文件t0.as
--------------------------------------------
package {
import flash.display.Sprite;
public class t0 extends Sprite {

function t0() {
var obj=new t1();
//addChild(obj) //漏掉了addChild
trace(this);
}
}
}
新建一个fla,设置文档类为t1,发现可以画出一个黑色的园,但如果设置文档类为t0,就报出无法访问空对象。

因为每一个as文件,我们可以把它看做是一个独立的文档性显示对象容器(displayObjectContainer),.as文件对象中的addChild实际上是把各种显示对象添加到这个容器里。

只有被fla设为文档类的as文件,才会被添加到stage里。其他的都是一个个装满显示对象的容器。当我们需要在舞台上显示它们时,必须先在文档类as文件代码里实例化,然后addChild();
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子对家人有抵触情绪怎么办 孩子因为没耐心哭闹怎么办 宝宝哭闹真是没耐心怎么办 对自己孩子没耐心怎么办 跳了把腰伤了怎么办 爸爸对妈妈家暴怎么办 逆反心强23岁怎么办 觉得自己心理有问题怎么办 小孩心理脆弱过于敏感怎么办? 父母老是骂打我怎么办 爸妈打架闹离婚怎么办 夫妻离婚后孩子户口怎么办 离婚后孩子户口怎么办落户 50岁父母要离婚怎么办 父母离婚小孩没有出生证该怎么办 离婚。父母一直在劝说该怎么办 老婆跟人跑了怎么办啊 父母50了要离婚怎么办 父母吵架了我该怎么办 父母看孩子总是吵架怎么办 20岁父母离婚我怎么办 碰到没素质的人怎么办 父母抛弃了我该怎么办 父母说家里没钱困难怎么办 遇到素质低的老婆怎么办 孩子考试心里素质差怎么办 5岁儿童脾气不好怎么办 有一个素质差的父母怎么办 孩子对什么都无所谓怎么办 孩子在学习上无所谓怎么办 孩子对学习无所谓的态度怎么办 孩子不上进什么都无所谓怎么办 倔强的学生不理老师怎么办 一岁宝宝特别犟怎么办 孩子遇到问题喜欢发脾气怎么办 企业培养新人跑了怎么办 二年级学生读不懂题目怎么办 6岁宝宝有鼻炎怎么办 外地儿童怎么办北京医保卡 江苏联宝投资的钱怎么办 银行叫开了证券怎么办