我是初次使用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>
您可以看到代码非常简单。
但是当我单击Label或Application时,似乎永远不会调用hello()
方法。我尝试在调试模式下在trace("world")
行添加一个断点,它从未被触发过。
由于作者很忙,而且我刚开始弯曲,我不知道如何调试这个问题。
答案 0 :(得分:1)
试试这个。您需要添加事件类型
<?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(event:MouseEvent): void {
trace("world");
}
]]>
</fx:Script>
<controls:Label text="Click Me" height="100" width="100" click="hello(event)" />
</common:Application>
答案 1 :(得分:0)
我找到了Label
方法中mouseEnabled
在false
inited
中设置override protected function init():void
{
super.init();
mouseEnabled = false;
mouseChildren = false;
}
的原因:
<controls:Label text="Click Me" height="100" width="100" click="hello()" mouseEnabled="true" />
请参阅:https://github.com/xiaotie/RedCoral/blob/master/src/geb/controls/Label.as#L112
所以我们应该启用它:
{{1}}