FLEX 系统提供的事件与DOM的事件基本上完全一致 但是和传统的WEB开发不同的是 可以为自定义的组件添加自定义的事件 比如我们做了一个组件是一个登录框 当点击登录按钮的时候触发我们自定义的事件 比如叫"login"事件 虽然这个login事件 归根结底还是某个按钮的click事件 但自定义的事件比传统的事件有什么好处呢 :一是事件的名字是自定义的 可以形象的表示这个事件本身 而不像以前还要关心是哪个按钮按了一下等等 这样为组件与组件的通讯提供便利 下面的例子中自定义了一个组件叫testComponent , 这个自定义的组件中有一个按钮和一个输入框, 当按下这个按钮的时候 新建一个新的事件叫shareData
并且shareData事件被声明为一个textEvent , textEvent可以通过text属性来传递数据(textInput控件的值) 。
EventTest.mxml中引用了这个自定义组件testComponent 并捕获testComponent中的自定义事件shareData, 输出testComponent 中textInput控件的字符串
testComponent.mxml :
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" height="300">
<!-- 声明本组件将抛出的事件 -->
<mx:Metadata>
[Event(name="shareData",type="flash.events.TextEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
private function fnOnClick_testComp():void {
//event 构造函数 至少传递一个事件名
var event:TextEvent = new TextEvent("shareData");
event.text = myTxtInput.text;
//使用disptchEvent 来抛出创建的事件
dispatchEvent(event);
}
]]>
</mx:Script>
<mx:Label text="This is the Test component" />
<mx:TextInput id="myTxtInput"/>
<!-- 当点击按钮时进行自定义事件 -->
<mx:Button label="clickMe" click="fnOnClick_testComp()" />
</mx:VBox>
eventTest.mxml :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
xmlns:view="view.*">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function fnOnShareData(event:TextEvent):void {
Alert.show("event has been use. event.text => " + event.text );
}
]]>
</mx:Script>
<!-- 调用我们自定义的组件 并处理它的shareData事件 就像click事件一样使用 -->
<view:testComponent shareData="fnOnShareData(event)"/>
</mx:Application>
分享到:
相关推荐
主动派发事件总结主动派发事件总结 - snandy -
通过该框架可优化事件的操作控制,方便不同脚本间事件的调用,要注意监听要在派发事件之前,否则事件无响应。 监听语句:Model.eventManager.addEventListener(枚举类.ToString(), 方法名); 派发语句:Model.event...
本文将深入探讨如何在Flex的TitleWindow父子页面之间进行有效的事件派发,以及背后的事件机制,这对于理解和优化Flex应用中的交互逻辑至关重要。 ### 1. Flex TitleWindow与事件派发基础 TitleWindow作为Flex中的...
以下是一些主要的JavaScript主动派发事件的方法与知识点总结。 1. 使用dispatchEvent() dispatchEvent()是标准的事件触发方法,在调用这个函数之前需要创建一个事件对象。我们通过document.createEvent()方法创建一...
本文将深入探讨Android Input子系统的事件分发流程,帮助开发者理解这一复杂而重要的过程。 首先,让我们从ViewRootImpl类的setView方法开始。这个方法在为一个新视图设置根视图时被调用。在步骤2,`new Input...
cocos creator 3.8 事件派送、监听、移除
在JavaScript编程中,事件派发器(EventDispatcher)是一个核心概念,它允许对象之间通过事件进行通信,从而实现解耦和模块化的代码设计。EventDispatcher是JavaScript中的一个设计模式,通常用于实现事件驱动的编程...
程序可以调用 QApplication::postEvent() 函数将事件放入 Qt 的消息队列中,或者调用 sendEvent() 函数直接派发事件。 三、QT 事件的处理 QT 事件的处理可以分为两种方式:同步和异步。QT 的事件循环是异步的,当...
当需要传递数据时,将数据打包到之前定义的数据结构中,然后调用“派发事件”函数,将事件和数据一起发送出去。 在调用XControl的VI(本例中的“test”VI)中,我们需要监听并处理这个自定义事件。在“test”VI的...
事件派发机制确保了用户与界面的交互能够正确地被处理和响应。本示例"android事件派发验证demo"旨在帮助开发者深入理解并验证这一机制。下面我们将详细探讨Android事件派发的工作原理、涉及的概念以及如何通过...
- 派发事件:在组件中使用dispatchEvent方法触发自定义事件。 3. 事件处理:处理自定义事件通常需要在组件内部注册事件监听器,并在监听器函数中处理事件。监听器可以添加到组件本身或其父组件上,使用...
- `dispatch`方法用于派发事件,即执行所有已注册的事件处理函数。它接收一个事件对象`$event`,并设置`$event->target`为当前调度器对象。然后,通过事件类型字符串`$eventstr`查找并调用`_callback_method`数组中...
3. **派发事件**:在需要触发事件的地方,使用`dispatchEvent()`方法发送自定义事件。 4. **监听事件**:在接收方组件中,使用`addEventListener()`方法添加事件监听器,处理自定义事件。 在提供的“WinCCALLMine”...
在这个项目中,我们可能会看到如何创建事件、如何派发事件以及如何注册和处理事件。例如,一个简单的按钮点击事件处理可能如下: ```xml <!-- MXML代码 --> 点击我" click="handleButtonClick(event)"/> <![CDATA...
2. 派发事件: ```csharp if (MyEvent != null) { MyEvent("Event Fired!"); } ``` 3. 订阅和取消订阅事件: ```csharp public class Subscriber { public void Subscribe() { Publisher.MyEvent += ...
在Android系统中,点击事件的派发机制是一个关键的组件,它确保了用户与界面的交互能够正确地被处理和响应。本文将深入探讨Android点击事件的派发流程,从Activity到底层View,以及源码解析,帮助读者理解这一过程。...
// 在某个对象上派发事件 myObject.dispatchEvent(new CustomEvent(CustomEvent.MY_EVENT)); ``` 5. **事件监听器优先级**:AS3允许你为事件监听器指定优先级,数值越大优先级越高,先执行。这通过`...
首先编写一个事件类,继承Cairngorm中的CairngromEvent事件,在派发事件之前把需要传值的参数放到绑定类中去, 得到的一系列参数存储在ValueObject类的公共变量中,ValueObject类是继承cairngrom类中valueobject类的,...
$emit 方法只能向父组件或祖先组件派发事件,不能向子组件或后代组件派发事件。$on 方法可以监听来自任何组件的事件,但需要指定事件的作用域,使得事件只在指定的组件中有效。 在实际开发中,我们可以根据需要选择...