解决TypeError:无法访问空对象引用的属性或方法

刚使用AS3的朋友..
也许会经常遇到
"TypeError: Error #1009: 无法访问空对象引用的属性或方法。"

出现这个问题的原因很简单,常见的是"对象为null","属性不存在","方法不存在".
看看下面的例子:
1、var list:Array;   
2、trace(list.length)
由于list还有实例化,我们就调用了他的length的属性.Ctrl+Enter运行.出现了下面的错误

1、TypeError: Error #1009: 无法访问空对象引用的属性或方法。   
2、at _fla::MainTimeline/frame1() 
PS:我写在帧上,,所以函数名为frame1,类名为MainTimeline.

其实本来很好解决的问题..
可是代码提示没有告诉我们是哪个对象,哪个属性,哪个方法,,
连哪一行都没有告诉我们..

只告诉我们是哪个函数,
如果像上面只有两行代码..那当然就好解决了,
可实现情况可能会有十行~二十行~
这时候可能得使用return或try这样的排除法...一步一步解决...

累~上面是前言...可以直接跳过.....

今天介绍一个简单而不常用的方式...可以方法解决上面的问题....
还是前面的代码
1、var list:Array;   
2、trace(list.length) 
不过我们不使用Ctrl+Enter运行
我们使用Ctrl+Shift+Enter运行

运行后调试窗出现以下面的内容
1、正在尝试使用 URL C:DOCUME~1*LOCALS~1Temp未命名-1.swf 启动并连接到播放器   
2、解压缩后字节数为 [SWF] C:Documents and Settings*Local SettingsTemp未命名-1.swf - 1970 字节   
3、TypeError: Error #1009: 无法访问空对象引用的属性或方法。   
4、at _fla::MainTimeline/frame1()[_fla.MainTimeline::frame1:2] 
再看看IDE的中间

已经详细的告诉了我们是哪一行出了问题...
这样就可以快速定位到错误的行数...
然后根据该行的问题进行处理就ok了...

PS:调试功能除了刚刚说的功能外,还有很多更实用的功能,变量查看,断点调试,大家可以多尝试,对查错调试有很大帮助!

时间: 2024-09-07 08:20:20

解决TypeError:无法访问空对象引用的属性或方法的相关文章

actionscript-【Flex】TypeError:无法访问空对象引用的属性或方法。

问题描述 [Flex]TypeError:无法访问空对象引用的属性或方法. TypeError: Error #1009: 无法访问空对象引用的属性或方法. at mx.managers::PopUpManagerImpl/addModalPopUpAccessibility()[E:dev4.yframeworksprojectsframeworksrcmxmanagersPopUpManagerImpl.as:1440] at mx.managers::PopUpManagerImpl/mo

框架-【Flex】TypeError:无法访问空对象引用的属性或方法。

问题描述 [Flex]TypeError:无法访问空对象引用的属性或方法. TypeError: Error #1009: 无法访问空对象引用的属性或方法. at mx.managers::PopUpManagerImpl/addModalPopUpAccessibility()[E:dev4.yframeworksprojectsframeworksrcmxmanagersPopUpManagerImpl.as:1440] at mx.managers::PopUpManagerImpl/mo

python3 类的属性、方法、封装、继承及小实例

Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. python类与c++类相似,提供了类的封装,继承.多继承,构造函数.析构函数. 在python3中,所有类最顶层父类都是object类,与java类似,如果定义类的时候没有写出父类,则object类就是其直接父类.  类定义 类定义语法格式如下: class ClassName:    <state

IE8 jquery ajax获取静态资源报错TypeError 拒绝访问

1,出现问题的代码: Js代码   /***      * 请求静态html 模板      * @param url      * @param $jqueryDiv : 四个主要div之一      * @param templateHandle : 自定义,用于使用Dot js模板函数      * @param callback : 用于实现模板之后,绑定事件      * @param templateData : cia的返回数据      */      ajaxHtml: fun

高效刷新DNS缓存 解决网页无法访问

连接互联网的计算机会自动缓存网页,以此提高重新打开页面的访问速度.如果IP 地址变更了,计算机缓存未及时更新,您可能无法打开网页.遇到"未找到页面"的错误,确定您已连接互联网,可尝试刷新 DNS 缓存,高效刷新DNS缓存 解决网页无法访问,有几个办法很好用. 一.电脑如何刷新dns缓存,DNS缓存刷新方法步骤: 1.同时按住Windows键和R键,打开"运行"对话窗,并输入"cmd"命令,点击"确定"按钮,进入命令窗口. 如图

解决IE 没法访问https 的问题

解决IE 没法访问https 的问题 点击"Internet 选项", 进入"高级"选项卡,然后选中

在liferay中用serveResource解决跨域访问问题

简介: 众所周知,跨域问题是十分常见的需求,比如让客户端的ext-js控件可以渲染来自服务器端的json对象.我们可以用很多很多方法来解决,比如jsonP.但是,在liferay中,我们可以用serveResource方法来优雅的解决跨域访问问题. 白板分析: 以下是摘自我在技术讨论会上的白板: 解决方法: 首先编写一段serveResource方法,让其和远端的json对象打交道,它作为中间层可以封装来在远程的json资源,然后提供给本域内的ext-js代码来渲染. 当然了,这里我们的资源必须

Objective-C中通过下标的方式访问自定义数据模型中属性

Objective-C中通过下标的方式访问自定义数据模型中属性       在Objective-C中,可以通过下标来访问数组中的元素,如果数组是NSMutableArray类型的可变数组,则还可以通过下标来对数组中的元素进行赋值操作.例如: ? 1 2 3 4     NSMutableArray * array = [[NSMutableArray alloc]init];     array[0] = @"one";     NSString * str = array[0];

无法显式调用运算符或访问器 无法对属性或索引器赋值

问题描述 无法显式调用运算符或访问器 无法对属性或索引器赋值 困扰了好久了.c#反汇编回来的程序报了2个错误, this.msc.add_Error(new DScriptControlSource_ErrorEventHandler(OnError)); this.msc.add_Timeout(new DScriptControlSource_TimeoutEventHandler(OnTimeout)); 提示:"MSScriptControl.DScriptControlSource_E