Как подавить предупреждения миграции Flash (1090)

В Профессионале Flash CS4 я получаю "миграцию, выдают" предупреждения, когда я использую названия обработчика мышей/вводов с клавиатуры, такие как onMouseDown, onKeyUp, и т.д., даже при том, что я добавил слушателей события для них. Эти имена являются совершенно официальными для функций, но так как они были автоматически запущены в ActionScript 2.0, мы теперь (хотя разумно), предупредил, что их использование больше не является автоматическим в AS3.

Я понимаю цель предупреждений, но они не полезны для меня. Я хочу подавить эти предупреждения, но не подавляя никакие другие предупреждения, которые я обычно нахожу полезными.

Например, когда я использую код как это:

/** @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).

Существует компилятор гибкого провода (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 в Пользовательском dir Данных Flash.
[userdatafolder]/Adobe/Flash CS4/en/Configuration/ActionScript 3.0/FlexInfo.xml Однако этот файл содержит неутешительный комментарий: , и, кажется, не отвечает на мои директивы даже после перезапуска флэш-памяти.
Это становится печальным.

Редактирование 3: Найденный проблемой "Ошибочная, раздражающая "Миграция выдает" предупреждения" на средстве отслеживания ошибки Adobe. Фиксация подтверждена для Flex SDK, но никакое упоминание о Flash...

10
задан aaaidan 21 May 2012 в 03:02
поделиться

4 ответа

Можно, отредактировав EnabledWarnings.xml в $ Flash / $ LOCALE / Configuration / Actionscript 3.0 / EnabledWarnings.xml, где $ Flash - это путь к Flash внутри папки Applications / Program Files, а $ LOCALE - это ваш язык.

например.

/ Applications / Adobe Flash CS4 / ru / Configuration / ActionScript 3.0 / EnabledWarnings.xml

Вам нужно будет отредактировать строку 29, установив для атрибута enabled значение false для предупреждения с идентификатором 1090 :

<warning id="1090" enabled="false"  label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>

Небольшое примечание:

«Flash Builder (CS4)» - сбивающий с толку термин. После Flex Builder 3 Flex Builder был переименован в Flash Builder, Flash Builder CS4 отсутствует. Обычная среда разработки Flash IDE известна как Flash Professional / Flash Professional CS4, чтобы избежать путаницы между продуктами с похожими названиями: Flash Catalyst, Flash Builder (ранее Flex Builder), Flash Professional. Очевидно, это не всегда так хорошо работает :)

13
ответ дан 3 December 2019 в 20:03
поделиться

Почему вы игнорируете это? Во-первых, его никогда не существовало. Сообщение об ошибке на самом деле сообщает вам кое-что полезное. Не подавляйте это.

Если вы хотите создать обработчик событий onMouseDown, попробуйте что-нибудь вроде

private function onMouseDown(e:MouseEvent) : void {
  // statements
}
1
ответ дан 3 December 2019 в 20:03
поделиться

Я согласен с предыдущим сообщением; сообщение пытается сообщить вам, что вам необходимо зарегистрировать этот обработчик событий. Простое добавление метода onMouseDown () этого не сделает. Что вам нужно сделать, так это добавить что-то вроде

addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);

либо в ваш конструктор, либо, возможно, в родительский компонент.

1
ответ дан 3 December 2019 в 20:03
поделиться

А как насчет изменение имени вызываемой функции с onMouseDown на handlerOnMouseDown. Решит ли это проблему?

Вы используете Flex Builder?
Если да, перейдите в Проект -> Свойства -> Компилятор Flex. Там вы можете добавить аргументы в компилятор.

3
ответ дан 3 December 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: