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

时间:2010-03-31 00:18:18

标签: 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 {

我收到一个令人讨厌的警告:

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 :我在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错误跟踪器上发现问题“Erroneous, annoying "Migration issue" warnings”。已确认Flex SDK已修复,但未提及Flash ...

5 个答案:

答案 0 :(得分:13)

如果你在$ Flash / $ LOCALE / Configuration / Actionscript 3.0 / EnabledWarnings.xml中编辑 EnabledWarnings.xml ,你可以在其中$ Flash是Applications / Program Files文件夹中Flash的路径, $ LOCALE是您的语言。

e.g。

/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>

快速旁注:

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

答案 1 :(得分:3)

如何将正在调用的函数的名称从onMouseDown更改为handlerOnMouseDown。它会解决这个问题吗?

您使用的是Flex Builder吗?
如果是这样,请转到项目 - &gt;属性 - &gt; Flex编译器。在那里你可以为编译器添加参数。

答案 2 :(得分:1)

你为什么压倒一切?它从来就不存在。错误消息实际上告诉您一些有用的东西。不要压制它。

如果要创建名为onMouseDown的事件处理程序,请尝试类似

的操作
private function onMouseDown(e:MouseEvent) : void {
  // statements
}

答案 3 :(得分:1)

我同意上一篇文章;消息试图告诉您需要注册该事件处理程序。只是添加一个名为onMouseDown()的方法就不会这样做。你需要做的是添加像

这样的东西
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);

在您的构造函数中或可能在父组件中。

答案 4 :(得分:1)

您可以使用Flash Builder的问题过滤功能过滤掉这些警告:

  • 打开问题视图
  • 右键单击打开下拉菜单的小三角形
  • 选择配置内容...
  • 在左侧,创建一个新配置,根据需要命名
  • 在右侧调整其设置:
    • 范围:在同一项目中的任何元素(或您想要的任何内容)
    • 说明: 选择不包含并输入迁移问题(这会过滤掉警告描述中的迁移问题)
    • 至少选择Flex问题

您可以通过选择左侧的多个配置来组合预定义和自定义配置。