Как подавить предупреждения о миграции Flash (1090)
в Flash Professional CS4 я получаю предупреждения "проблема миграции", когда я использую имена обработчиков ввода мыши/клавиатуры, такие как onMouseDown, onKeyUp и т. д., хотя я добавил слушателей событий для них. Эти имена вполне законны для функций, но поскольку они были автоматически запущены в ActionScript 2.0, мы теперь (хотя и разумно) предупреждены, что их использование больше не является автоматическим в AS3.
я понял смысл предупреждения, но они не полезны для меня. Я хочу подавить эти предупреждения, но без подавление любых других предупреждений, которые я вообще do найти полезных.
например, когда я использую такой код:
/** @constructor */
public function MyClass() {
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
protected function onMouseDown(e:MouseEvent):void {
Я получаю раздражающее предупреждение, как это:
Warning: 1090: Migration issue: The onMouseDown event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).
есть флаги компилятора flex (mxmlc) (и настройка Flash Pro), которые могут подавлять предупреждения actionscript или все предупреждения, но я не хочу этого. Это слишком обобщенно.
в идеале я мог бы подавить конкретную ошибку / номер предупреждения (предупреждение № 1090).
редактировать: я нашел более "продвинутые" флаги компилятора с mxmlc -help advanced
, которые выглядят многообещающе. В частности, следующие кажутся вероятными кандидатами:warn-deprecated-event-handler-error
warn-deprecated-function-error
warn-deprecated-property-error
как я могу получить Flash, чтобы использовать их?
Изменить 2: я нашел flex-info.документ стиля xml в данных Пользователя Flash dir.[userdatafolder]/Adobe/Flash CS4/en/Configuration/ActionScript 3.0/FlexInfo.xml
Однако, этот файл содержит неутешительный комментарий: <!-- Flash does not support most flex-config options. -->
, и, похоже, не реагирует на мои директивы даже после перезапуска flash.
Становится грустно.
редактировать 3: нашли проблему "ошибочные, раздражающие предупреждения "проблема миграции" " на Adobe bug tracker. Исправление подтверждено для Flex SDK, но нет упоминания о Flash...
5 ответов
Вы можете, если вы измените EnabledWarnings.в XML в $Flash / $LOCALE / Configuration/Actionscript 3.0 / EnabledWarnings.xml, где $Flash-это путь к Flash внутри папки приложений / программных файлов, а $LOCALE-ваш язык.
например
/Applications/Adobe Flash CS4/en/Configuration/ActionScript 3.0/EnabledWarnings.xml
вам нужно будет отредактировать строку 29, установив включено до false на предупреждение С id 1090:
<warning id="1090" enabled="false" label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
быстрый sidenote:
"Flash Builder (CS4)" - запутанный термин. После Flex Строитель 3, Флекс билдера был переименован в Флэш-Строитель, нет Флэш-Строитель CS4 на. Обычная Flash IDE известна как Flash Professional / Flash Professional CS4, это было, чтобы избежать путаницы между продуктами с похожими именами: Flash Catalyst, Flash Builder(был Flex Builder), Flash Professional. Очевидно, это не всегда работает отлично:)
Как насчет изменения имени вызываемой функции из onMouseDown в handlerOnMouseDown. Решит ли это проблему?
вы используете Flex Builder?
Если это так, перейдите в Project - > Properties - > Flex Compiler. Там вы можете добавить аргументы в компилятор.
почему вы переопределяете это? Во-первых, его никогда не существовало. Сообщение об ошибке на самом деле говорит вам что-то полезное. Не подавляйте его.
Если вы хотите создать обработчик событий с именем onMouseDown, попробуйте что-то вроде
private function onMouseDown(e:MouseEvent) : void {
// statements
}
Я согласен с предыдущим постом; сообщение пытается сказать вам, что вам нужно зарегистрировать этот обработчик событий. Просто добавление метода onMouseDown () не сделает этого. Что вам нужно сделать, это добавить что-то вроде
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
в вашем конструкторе или, возможно, в Родительском компоненте.
вы можете отфильтровать эти предупреждения, используя возможности фильтрации проблем Flash Builder:
- открыть проблемы view
- щелкните правой кнопкой мыши на маленьком треугольнике, который открывает выпадающее меню
- выберите Настроить Содержание...
- С левой стороны создайте новую конфигурацию, назовите ее, как вы хотите
- справа настройки его параметров:
- объем: на любом элементе в том же проект (или все, что вы хотите)
- описание: выбрать не содержит и введите миграционный вопрос (это отфильтрует предупреждения с проблемой миграции в описании)
- выберите по крайней мере Flex проблемы
вы можете комбинировать предопределенные и пользовательские конфигурации, выбрав несколько из них с левой стороны.