【发布时间】:2012-07-24 15:41:54
【问题描述】:
我是 flex 的新手,使用小型开源 UI 库 ReCoral。在我的测试中,我使用它的Application 类作为mxml 的根,并且它有一个点击处理程序。
<?xml version="1.0" encoding="utf-8"?>
<common:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:common="geb.common.*" width="500" height="500"
xmlns:controls="geb.controls.*"
xmlns:mx="library://ns.adobe.com/flex/mx"
click="hello()">
<fx:Script>
<![CDATA[
private function hello(): void {
trace("world");
}
]]>
</fx:Script>
<controls:Label text="Click Me" height="100" width="100" click="hello()" />
</common:Application>
可以看到代码很简单。
但是当我单击标签或应用程序时,hello() 方法似乎从未被调用过。我尝试在调试模式下在trace("world") 行添加断点,它从未被触发。
由于作者比较忙,刚接触flex,不知道怎么调试这个问题。
- 有什么方法可以监听任何点击事件并记录信息?
- 有什么有用的文件我应该阅读吗?
【问题讨论】:
-
不熟悉 RedCoral,但您用于添加侦听器的语法以及您所做的一切似乎都是正确的。尝试将 RedCoral 组件(
<common:Application />和<controls:Label />)替换为标准 Flex 组件(<s:Application />和<s:Label />)。侦听器是否与 Flex 组件一起工作? -
看了一些RedCoral的源代码,发现它设置
mouseEnabled为false,所以我必须在Label中设置为true -
非常感谢。我想我应该尽快删除这个问题
-
与其删除它,也许您可以添加您的答案......其他人可能会从中受益。设置
mouseEnabled=false是一个很好的优化,当您从没想过会使用鼠标事件时,但可能也会让其他 RedCoral 用户大吃一惊。 -
如果您使用的是备用 UI 库,我不清楚为什么这个问题与 Flex 相关...
标签: apache-flex debugging events