如何创建特定类型的数组

flash web-services actionscript

86 观看

1回复

5182 作者的声誉

我有一个班级如下:

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并使用它。

作者: Simsons 的来源 发布者: 2012 年 1 月 13 日

回应 1


0

0 作者的声誉

决定

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

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

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

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

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

作者: user797257 发布者: 2012 年 1 月 13 日
32x32