如何创建特定类型的数组

时间:2012-01-13 09:56:51

标签: flash web-services actionscript

我有一个班级如下:

class com.flightstatus.SpecificationFlight 
{
    public var Airline:Airline;

    public var FlightNumber:String;

    public var SearchCodeshares:Boolean;

    public var SearchCodesharesSpecified:Boolean;

    public var TailNumber:String;
}

现在我想创建一个上面类型的数组,如下所示: var myArr:SpecificationFlight = new Array();

这种类型非常重要,因为它将通过webservice发送。

这在AS3中是否可行?如果是这样,我是否可以仅将此功能导入AS2并使用它。

1 个答案:

答案 0 :(得分:0)

您的代码是AS2,而不是AS3,在AS3中,您不能使用名称中的句点声明类,而是使用包。 (从技术上讲,这不准确,如果在编译后更改字节码,你可能会在名称中有句号,但我怀疑你的意思。)

AS2没有类型化数组,即它只有一个Array类,它可以包含任何类型的对象。但是,您可以为自定义类定义__resolve(x)方法,并且只允许从yourClassInstance[x]代码返回特定类型的对象。遗憾的是,您无法控制分配给yourClassInstance[x]的对象的类型。

在AS3中,自Flash Player 10以来有一个Vector.<T>类。显然,这个类用于创建某种类型的向量。

在可以编译为AS2和AS3的Haxe语言中有类型数组,但如果您通过反射或通过其他未使用Haxe编译的其他代码访问已编译的代码,则会在语言(编译器)级别强制执行。 ,然后数组仍然是无类型的(非常类似于Java中的泛型工作)。

PS。在AS的任一变体中对变量的名称使用Pascal案例是非常违反直觉的,类字段通常是驼峰式的(甚至代码突出显示器假设它们是类名,而不是变量名)。使用公共变量我们通常也是一个坏主意,但它不一定是坏的,取决于上下文,但我当然会感到震惊。