我正在将Flex应用程序重构为“库项目”,而我遇到的一个错误的有趣错误涉及到这样的函数:
function spam(eggs:*=undefined):void {
...
}
虽然它是一个“Flex应用程序”,但这个函数编译没有问题...但是当我尝试将其构建为“库项目”时,编译器给出了错误:
1047: Parameter initializer unknown or is not a compile-time constant.
所以,呃......为什么?我有什么办法可以解决这个问题吗?
答案 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'是不是有点悖论?