在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 ...
答案 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的问题过滤功能过滤掉这些警告:
您可以通过选择左侧的多个配置来组合预定义和自定义配置。