Flex中自定义事件
来源:互联网 发布:淘宝怎么做虚拟网店 编辑:程序博客网 时间:2024/06/06 08:52
<?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"
creationComplete="creationCompleteHandler(event)">
<fx:Metadata>
[Event("showYaner")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
//应用程序启动时注册监听
protected function creationCompleteHandler(event:FlexEvent):void
{
this.addEventListener("showYaner", showHandler);
}
//监听响应函数
private function showHandler(e:Event):void
{
Alert.show("我的老婆,想你");
}
]]>
</fx:Script>
<!-- 当点击Button按钮的时候,派发事件-->
<s:Button id="eventTest" label="wife" width="20" height="20" click="{dispatchEvent(new Event('showYaner'))}"/>
</s:Application>
另一种事件响应方式(即从一个组件中监听另一个组件的方法)
<?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" xmlns:local="*">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
private function mytestHander():void
{
Alert.show("===我的小艳儿===");
}
]]>
</fx:Script>
<local:Mycanvas myyaner="mytestHander()"/>
</s:Application>
---Mycanvas 组件
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Metadata>
[Event(name='myyaner', type='flash.events.Event')]
</fx:Metadata>
<s:Button id="yanerbtn" label="事件测试" click="{dispatchEvent(new Event('myyaner'))}"/>
</mx:Canvas>
还有一点需要注意,也是自己在平时中总结出来的,就是,事件只能在父类中添加监听,在当前类或是子类中触发。不能与不相关(平级的组件)之间调用:如:
<?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"
xmlns:local="*" creationComplete="application1_creationCompleteHandler(event)">
<fx:Metadata>
[Event(name="bookSelected", type="events.Event")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import events.BookEntryEvent;
import mx.controls.Alert;
import mx.events.FlexEvent;
protected function button1_clickHandler(event:MouseEvent):void
{
this.dispatchEvent(new Event("bookSelected"));
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
this.addEventListener("bookSelected", onBookSelectEventHandler);
}
private function onBookSelectEventHandler(e:Event):void
{
Alert.show("自定义监听的事件");
}
]]>
</fx:Script>
<s:Button x="127" y="134" label="触发事件" width="202" height="38" click="button1_clickHandler(event)"/>
<local:listenerTest/>
</s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300" creationComplete="group1_creationCompleteHandler(event)"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import events.BookEntryEvent; import mx.controls.Alert; import mx.events.FlexEvent; protected function group1_creationCompleteHandler(event:FlexEvent):void { mybtn.addEventListener("bookSelected", onBookSelectEventHandler); } private function onBookSelectEventHandler():void { Alert.show("自定义监听的事件"); } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:Button label="45234drfsdfsdf" x="100" id="mybtn"/> </s:Group> 上面举得这个示例,就不能派发Group中的事件。 如果是使用父类与子类关系的事件监听的话,一定要把new Event()中的bubbles属性设置为true,表示该事件为冒泡事件。否则,事件不会派发。
- Flex中自定义事件
- Flex中自定义事件
- Flex中自定义事件
- Flex中自定义事件
- Flex中自定义事件
- FLEX中给组件添加自定义事件
- FLEX中给组件添加自定义事件
- FLEX中给组件添加自定义事件
- flex自定义事件
- Flex 自定义事件
- flex 自定义事件
- Flex自定义事件
- flex学习----自定义事件
- flex的自定义事件
- Flex 自定义事件写法
- FLEX自定义事件
- flex 3自定义事件
- Flex 自定义事件
- PCB布线中关于地线回路的一点点体会
- vs.net命名规范
- 上下文
- 图解DotNet框架之九:WPF
- Q:domino administrator更新验证者标识时出错
- Flex中自定义事件
- Unable to load class for JSP
- 糅合了《魔兽》和《第二人生》优点的新式游戏闪亮登场!
- fastcgi 绑定的程序用unix domain socket后无法写文件的问题
- 用TextView显示带图片的效果
- MTK中Category的定义
- Java Clipboard
- ubuntu 密码重置
- Effective Perl