ActionScript是否有处理具有多个基本类型的强类型列表的方法?ActionScript中有多种基本类型的强类型集合(矢量<T,T>)?
我实际上在寻找一些东西,如Vector<T,T>
?
可能吗?
或者是这样做的唯一方法是创建我自己的类,它接受让我们在构造函数中使用String
和Number
,并在该类中创建Vector<T>
?
ActionScript是否有处理具有多个基本类型的强类型列表的方法?ActionScript中有多种基本类型的强类型集合(矢量<T,T>)?
我实际上在寻找一些东西,如Vector<T,T>
?
可能吗?
或者是这样做的唯一方法是创建我自己的类,它接受让我们在构造函数中使用String
和Number
,并在该类中创建Vector<T>
?
不,不按标准。如果这些项目不是主要类型之一,则可以创建接口向量或超类。例如,包含混合了动画片段和动画的DisplayObject的向量(它们都从DisplayObject继承)。
例如:
var v:Vector.<DisplayObject> = new <DisplayObject>[
new MovieClip(),
new Sprite(),
new MovieClip()
];
trace(v[0].alpha); // outputs 1
trace(v[0].currentFrame); // error - not a DisplayObject property
在这种情况下,矢量项只会暴露从该载体型干特性和本身的方法。但这正是你应该使用向量的原因,它确保你正在处理的项目类型。
我不知道你的具体情况或目标,但我会考虑你为什么需要一个向量中的混合类型。正如你所说,你的另一种选择是创建一个包装类。下面的例子远不是完整的,而是一个起点。
class Wrapper {
public var _value:*; // should be private with get/set's
public function Wrapper(value:*) {
if(value is String || value is Number) {
_value = value;
}
}
}
你不能做到这一点,所以我会同意你的建议,这是创建一个包含两个属性一类特殊的去(说的数字,字符串),并创建的一个载体。