Проекты библиотеки Flex: `undefined` - это" неизвестно или не является константой времени компиляции "? - PullRequest
0 голосов
/ 12 июля 2010

Я нахожусь в процессе преобразования приложения Flex в «библиотечный проект», и одна из интересных ошибок, с которыми я столкнулся, связана с такой функцией:

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

Хотя это было «приложение Flex», эта функция была скомпилирована без проблем ... Но когда я пытаюсь построить его как «библиотечный проект», компилятор выдает мне ошибку:

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

Так что?И могу ли я что-нибудь сделать, чтобы это исправить?

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

В jira есть ошибка ( ссылка ), из-за которой mxmlc и компилятор flash ведут себя по-разному при работе с инициализаторами параметров.Поскольку проекты библиотеки компилируются с использованием другого компилятора (compc вместо mxmlc), я подозреваю, что это может быть той же проблемой.

Возможно, вы можете изменить функцию на что-то вроде этого, если вам нужно, чтобы она была неопределенной:

function spam(eggs:*=null):void {
   if (eggs is null) eggs = undefined;
}
0 голосов
/ 12 июля 2010

Класс с этим кодом вообще используется? Проект Flex мог бы оптимизировать его вне проекта, если он никогда не использовался; таким образом не выбрасывая ошибку. Проект библиотеки не будет этого делать.


Я бы рекомендовал использовать ноль в качестве значения по умолчанию вместо неопределенного. Нет ли здесь парадокса для инициализации значения как «неопределенного»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...