如何抑制Flash迁移警告(1090)

aaa*_*dan 10 apache-flex flash actionscript-3 suppress-warnings mxmlc

在Flash Professional CS4中,当我使用鼠标/键盘输入处理程序名称(如onMouseDown,onKeyUp等)时,即使我为它们添加了事件侦听器,也会出现"迁移问题"警告.这些名称对于函数来说是完全合法的,但由于它们是在ActionScript 2.0中自动触发的,因此我们现在(尽管明智地)警告它们在AS3中的使用不再是自动的.

我理解警告的目的,但它们对我没用.我想抑制这些警告,但不要压制任何其他警告,我通常发现这些警告很有用.

例如,当我使用这样的代码时:

/** @constructor */
public function MyClass() {
  addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}

protected function onMouseDown(e:MouseEvent):void {
Run Code Online (Sandbox Code Playgroud)

我得到一个像这样恼人的警告:

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设置)可以抑制动作脚本警告或所有警告,但我不希望这样.这太笼统了.

理想情况下,我可以抑制特定的错误/警告号码(警告#1090).

编辑:我发现了更多"高级"编译器标志mxmlc -help advanced,看起来很有希望.具体来说,以下似乎是可能的候选人:
warn-deprecated-event-handler-error
warn-deprecated-function-error
warn-deprecated-property-error

如何让Flash使用这些?

编辑2:我在Flash用户数据目录中找到了一个flex-info.xml样式文档.
[userdatafolder]/Adobe/Flash CS4/en/Configuration/ActionScript 3.0/FlexInfo.xml 但是,此文件包含令人失望的注释:<!-- Flash does not support most flex-config options. -->,即使重新启动Flash后,似乎也没有响应我的指令.
这让人难过.

编辑3:在Adobe bug跟踪器上发现问题" 错误,恼人"的迁移问题"警告 ".Flex SDK已确认修复,但未提及Flash ...

Geo*_*nza 13

你可以,如果你编辑EnabledWarnings.xml在$闪存/ $ LOCALE /配置/ ActionScript 3.0中/ EnabledWarnings.xml,其中$ Flash是你的应用程序中对Flash的路径/ Program Files文件夹和$ locale是您的语言.

例如

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

您将需要编辑29行,设置启用属性,以虚假警告 ID为1090:

<warning id="1090" enabled="false"  label="kWarning_DepricatedEventHandlerError">EventHandler was not added as a listener.</warning>
Run Code Online (Sandbox Code Playgroud)

快速旁注:

"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.显然它并不总是那么好:)