我有一个矢量实例,我正在使用Flash Player 10 / 10.1导出swf。
我想用参数类型初始化它。我尝试了如下:
var someType:Class = MyCustomClass;
var v:Vector.<someType> = new Vector.<someType>();
但它不起作用!! 有办法做到这一点吗?
我希望问题很明确: - )
提前致谢!
答案 0 :(得分:3)
someType
是类类型的实例;而Vector是这种类型的容器。
这应该是:
var v:Vector.<MyCustomClass> = new Vector.<MyCustomClass>();
否则,我注意到Haxe将其编译为:
var v:Vector.<Object> = new Vector.<Object>();
缺少Flash多态性,如果你有A类和B类,并试图将它们推送到Class类型的向量,你会收到一个错误:
实施例
package
{
import flash.display.Sprite;
public class test extends Sprite
{
public function test()
{
var v:Vector.<Class> = new Vector.<Class>();
var a:A = new A();
var b:B = new B();
v.push(a);
v.push(b);
}
}
}
错误:
TypeError: Error #1034: Type Coercion failed: cannot convert A@43a2ff1 to Class.
答案 1 :(得分:1)
Dynamically instantiate a typed Vector from function argument?
很糟糕,不是吗? : - )