Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 ActionScript运算符作为_Actionscript 3_Actionscript_Urlloader - Fatal编程技术网

Actionscript 3 ActionScript运算符作为

Actionscript 3 ActionScript运算符作为,actionscript-3,actionscript,urlloader,Actionscript 3,Actionscript,Urlloader,有人对接线员有很好的解释吗 一方面,在我看来,最好使用作为而不是实例化新对象 但有些情况下,接线员让我失望了。例如,通过加载XML格式的文本文件时: 为什么我必须在这里使用构造函数?为什么我不能说var x:XML=loader.data为XML并保存一些内存 谢谢你的见解! Alexas评估一个变量的类型是另一个类的超类还是子类。它不会创建新对象。与不同的是返回布尔值时,as返回所需类型的对象或null。它用于类型转换 看 一个典型的用例是在舞台上使用MovieClip,通过实例名检索: //

有人对接线员有很好的解释吗

一方面,在我看来,最好使用作为而不是实例化新对象

但有些情况下,接线员让我失望了。例如,通过加载XML格式的文本文件时:

为什么我必须在这里使用构造函数?为什么我不能说var x:XML=loader.data为XML
并保存一些内存

谢谢你的见解!
Alex

as
评估一个变量的类型是另一个类的超类还是子类。它不会创建新对象。与
不同的是
返回布尔值时,
as
返回所需类型的对象或
null
。它用于类型转换

一个典型的用例是在舞台上使用MovieClip,通过实例名检索:

// This will not compile:
var d:DisplayObject = stage.getChildByName ("instance1"); 
d.gotoAndPlay (2);

// This will play the MovieClip from frame 2
var m : MovieClip = stage.getChildByName ("instance1") as MovieClip;
m.gotoAndPlay (2); 

stage.getChildByName()
始终返回一个DisplayObject,不管它是否真的是MovieClip、Sprite、Button等。因此,如果要使用MovieClip类的任何方法,需要首先键入cast to MovieClip。但是,这不会创建新的MovieClip,而只是确保使用正确的类型。

as
评估变量的类型是另一个类的超类还是子类。它不会创建新对象。与
不同的是
返回布尔值时,
as
返回所需类型的对象或
null
。它用于类型转换

一个典型的用例是在舞台上使用MovieClip,通过实例名检索:

// This will not compile:
var d:DisplayObject = stage.getChildByName ("instance1"); 
d.gotoAndPlay (2);

// This will play the MovieClip from frame 2
var m : MovieClip = stage.getChildByName ("instance1") as MovieClip;
m.gotoAndPlay (2); 

stage.getChildByName()
始终返回一个DisplayObject,不管它是否真的是MovieClip、Sprite、Button等。因此,如果要使用MovieClip类的任何方法,需要首先键入cast to MovieClip。但是,这不会创建新的MovieClip,只会确保您使用的是正确的类型。

+1此外@Alexander Farber您也可以使用以下符号进行转换。var m:MovieClip=MovieClip(stage.getChildByName(“instance1”);这里的区别是,如果转换不成功,将抛出运行时错误。相比之下,as运算符将返回null。谢谢。关于我的示例中为什么得到null的任何解释:var x:XML=loader.data as XML?当然,loader.data不是XML对象(即使它包含XML文本)。如果您编写XML(loader.data),那么您使用的是顶级操作符XML(),它获取文本并从中创建XML对象。+1@Alexander Farber您也可以使用以下符号强制转换。var m:MovieClip=MovieClip(stage.getChildByName(“instance1”);这里的区别是,如果转换不成功,将抛出运行时错误。相比之下,as运算符将返回null。谢谢。关于我的示例中为什么得到null的任何解释:var x:XML=loader.data as XML?当然,loader.data不是XML对象(即使它包含XML文本)。如果您编写XML(loader.data),您将使用顶级操作符XML(),它获取文本并从中创建XML对象;是的,谢谢,这是我问题中的一个输入错误;是的,谢谢,这是我问题中的一个输入错误。