带有单个构造函数参数的Actionscript 3?

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的新手.

cwa*_*ole 8

你错过了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)