As3 Vector <t>参数类型</t>

时间:2011-11-15 18:48:33

标签: actionscript-3 vector

我有一个矢量实例,我正在使用Flash Player 10 / 10.1导出swf。

我想用参数类型初始化它。我尝试了如下:

var someType:Class = MyCustomClass;
var v:Vector.<someType> = new Vector.<someType>();

但它不起作用!! 有办法做到这一点吗?

我希望问题很明确: - )

提前致谢!

2 个答案:

答案 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?

很糟糕,不是吗? : - )