ActionScript定义静态常量数组

时间:2010-05-21 13:15:52

标签: actionscript-3 arrays static const

是不是可以定义一个静态const数组?我想为一个颜色数组的函数提供一个可选参数,

private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);

public function myConstructor(colorsArray:Array = DEFAULT_COLORS)
{
}

我知道我可以使用... args但我实际上想要为构造函数提供2个独立的数组作为选项参数。

1 个答案:

答案 0 :(得分:3)

不可能,但你可以用它来模拟这种行为:

private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);

public function myConstructor(colorsArray:Array = null)
{
    colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS;
}

如果你的函数的编码方式使得null可以是一个有效值(例如发出某些条件),那么这将不起作用,但可能不是这里的情况。

修改

如果您打算在myConstructor中写入colorsArray,那么在这里复制DEFAULT_COLORS是明智的:

colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS.slice();

对DEFAULT_COLORS数组的引用是常量,但其内容不是,因此您可能会意外更改默认值。