Flex库项目:`undefined`是“未知或不是编译时常量”?

时间:2010-07-12 17:41:37

标签: flex actionscript-3

我正在将Flex应用程序重构为“库项目”,而我遇到的一个错误的有趣错误涉及到这样的函数:

function spam(eggs:*=undefined):void {
    ...
}

虽然它是一个“Flex应用程序”,但这个函数编译没有问题...但是当我尝试将其构建为“库项目”时,编译器给出了错误:

1047: Parameter initializer unknown or is not a compile-time constant.

所以,呃......为什么?我有什么办法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

jira(link)中有一个错误,表示mxmlc和flash编译器在使用参数初始值设定项时表现不同。由于库项目是使用不同的编译器编译的(compc代替mxmlc),我怀疑它可能是同一个问题。

如果您需要将函数定义为未定义,您可以将函数更改为此类函数:

function spam(eggs:*=null):void {
   if (eggs is null) eggs = undefined;
}

答案 1 :(得分:0)

是否正在使用具有此代码的类?如果从未使用过,Flex Project可能已将其优化出项目;因此不会抛出错误。图书馆项目不会这样做。


我建议使用null作为默认值而不是undefined。将值初始化为'undefined'是不是有点悖论?