actionscript-3 - 使用 if 语句未定义的属性或对象仍然给出错误

标签 actionscript-3 flash

示例:

if (foo) {}


if (foo != undefined) {}


if (foo != null) {}


try {foo} catch(e:Error) {}

给出编译器错误。我该如何防止这种情况发生?

答案(感谢 Poke):

// declare the variable first   
var foo:DisplayObject;

if (foo == null) {
    trace('foo is null') // traces  
}

最佳答案

ActionScript 3 是 statically typed 。这意味着每个变量都必须先声明才能以任何方式使用。变量的声明与变量第一次获取值的初始化无关;很多时候,两者都是同时完成的,尽管执行类似 var myVar:uint = 2 的操作(这将变量 myVar 声明为 uint 并且使用值 2 对其进行初始化)。

因此,在您的情况下,您会收到错误,因为您正在访问尚未声明的变量,因此编译器不知道您尝试访问的名称。因此,您需要确保在使用变量之前确实已声明该变量。

关于actionscript-3 - 使用 if 语句未定义的属性或对象仍然给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512356/

相关文章:

flash - 在闪存中缝合/连接声音数据

javascript - 为什么没有非 Flash RTMP 视频播放器?或者有吗?

algorithm - 如何计算图像适合其容器的最佳比例?

javascript - Flex 项目包括 SWFAddress.js

flash - 确定 Flash 组件何时不可见

flash - 当用户更新应用程序时,共享对象数据会消失吗?

flash - 逐行读取文本文件并推送到AS3中的数组

actionscript-3 - 避免 Flex 4 中 Spark 列表中的 ItemRender 缓存

ios - 使用 Tapjoy Adob​​e AIR SDK

Flash AS3 全局变量?