Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 带有if语句的未定义属性或对象仍给出错误_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 带有if语句的未定义属性或对象仍给出错误

Actionscript 3 带有if语句的未定义属性或对象仍给出错误,actionscript-3,flash,Actionscript 3,Flash,示例: if (foo) {} if (foo != undefined) {} if (foo != null) {} try {foo} catch(e:Error) {} 给出一个编译器错误。我如何防止这种情况 回答(谢谢): // declare the variable first var foo:DisplayObject; if (foo == null) { trace('foo is null') // traces } 动作脚本3是。这意味

示例:

if (foo) {}


if (foo != undefined) {}


if (foo != null) {}


try {foo} catch(e:Error) {}
给出一个编译器错误。我如何防止这种情况

回答(谢谢):

// declare the variable first   
var foo:DisplayObject;

if (foo == null) {
    trace('foo is null') // traces  
}
动作脚本3是。这意味着每个变量在以任何方式使用之前都必须声明。声明变量与其初始化无关,在初始化过程中变量第一次获得值;通常,通过执行类似于
var-myVar:uint=2
的操作,这两项操作同时进行(这将变量
myVar
声明为
uint
,并使用值
2
对其进行初始化)


因此,在您的例子中,您会得到一个错误,因为您正在访问一个尚未声明的变量,因此编译器不知道您试图访问的名称。因此,在使用变量之前,您需要确保它确实已声明。

谢谢,这很有意义。我确实发现在现有对象中可以有一个null子对象,并且它不会抛出任何错误。