帮我看看这个简单的flex

lord_is_layuping 2010-10-07 03:38:21
我单击button3没有反应,不知道哪里错了?

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private function init():void {
button3.addEventListener(MouseEvent.CLICK, handleClick);
}

private function handleClick(event:MouseEvent):void {
if(event.target == button2){
label.text += 'Button 2 clicked\n';
}else if(event.target == button3){
label.text += 'Button 3 clicked\n';
}

}
]]>
</fx:Script>

<s:VGroup>
<s:Button id="button1" label="Button 1"
click="label.text += 'Button 1 clicked\n'" />
<s:Button id="button2" label="Button 2"
click="handleClick(event)" />
<s:Button id="button3" label="Button 3" />
<s:Label id="label" />

</s:VGroup>
</s:Application>
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fluentlymos 2010-10-07
  • 打赏
  • 举报
回复
event.target == button2 是可以这么判的,我搞错了。
那点击button3的时候断点走的进去吗?
lord_is_layuping 2010-10-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fluentlymos 的回复:]

private function handleClick(event:MouseEvent):void {
if(event.target == button2){
label.text += 'Button 2 clicked\n';
}else if(event.target == button3){
label.text += 'Button 3 clicked\n';
}

……
[/Quote]

event.target == button2 是可以的呵呵

呵呵。
fluentlymos 2010-10-07
  • 打赏
  • 举报
回复
private function handleClick(event:MouseEvent):void {
if(event.target == button2){
label.text += 'Button 2 clicked\n';
}else if(event.target == button3){
label.text += 'Button 3 clicked\n';
}

}
楼主可以先试着断点在这个函数上,看下button3压下,断点能不能走到,如果能走到,就不是listener的问题,就是函数逻辑的问题。
event.target == button2能这么判断吗? event.target 这个东西貌似里边还有好多东西啊。。。
event.target.label == "button2"这么判可能会有用吧。。。
楼主可以试试
lord_is_layuping 2010-10-07
  • 打赏
  • 举报
回复
哦,呵呵,谢谢。


我少些了东西。
tstts01 2010-10-07
  • 打赏
  • 举报
回复
把这句注释掉
/*
private function init():void {
button3.addEventListener(MouseEvent.CLICK, handleClick);
}
*/
button3 加一句 click= "handleClick(event) 就OK
<s:Button id="button3 " label="Button 3 " click= "handleClick(event) "/>
tstts01 2010-10-07
  • 打赏
  • 举报
回复
改成这样就好了
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
/*
private function init():void {
button3.addEventListener(MouseEvent.CLICK, handleClick);
}
*/

private function handleClick(event:MouseEvent):void {
if(event.target == button2){
label.text += 'Button 2 clicked\n';
}else if(event.target == button3){
label.text += 'Button 3 clicked\n';
}

}
]]>
</fx:Script>

<s:VGroup>
<s:Button id="button1" label="Button 1"
click="label.text += 'Button 1 clicked\n'" />
<s:Button id="button2" label="Button 2"
click="handleClick(event)" />
<s:Button id="button3" label="Button 3" click="handleClick(event)"/>
<s:Label id="label" />

</s:VGroup>
</s:Application>

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧