Pwn*_*nna 0 flash actionscript actionscript-3
假设我有一节课:
public class SomeClass{
var name:String;
public function SomeClass(n){
name = n;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做var s:SomeClass = SomeClass("test");,它会尝试将字符串转换为SomeClass.我该如何阻止它这样做?
对不起,我是AS3的新手.
你错过了new运营商:
var s:SomeClass = new SomeClass('test');
除非您使用new运算符,否则在ActionScript中创建类成员确实没有好办法.但是,有一些值得注意的例外.Array,XML,XMLList,int,uint,Number,String和Object几乎不应该使用它们的构造函数.
//To get a new array
var a:Array = [/*initial values*/];
// a new Object
var o:Object = {};
Run Code Online (Sandbox Code Playgroud)
在AS中,使用类的名称作为函数实际上是"将其强制转换为类".您也可以通过as操作员执行此操作.区别在于,as如果失败则返回null,其他方法将抛出错误:
// I NEED this to be a Foo, so I will force the matter.
var foo:Foo = Foo(otherVariable);
// It would be nice to have this as a Foo, but if it is null, whatever:
var foo:Foo = otherVariable as Foo.
Run Code Online (Sandbox Code Playgroud)