`
hje
  • 浏览: 288144 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

派发事件

阅读更多
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 -

    Unity事件框架->监听派发事件框架插件

    通过该框架可优化事件的操作控制,方便不同脚本间事件的调用,要注意监听要在派发事件之前,否则事件无响应。 监听语句:Model.eventManager.addEventListener(枚举类.ToString(), 方法名); 派发语句:Model.event...

    Flex TitleWindow父子页面的事件派发

    本文将深入探讨如何在Flex的TitleWindow父子页面之间进行有效的事件派发,以及背后的事件机制,这对于理解和优化Flex应用中的交互逻辑至关重要。 ### 1. Flex TitleWindow与事件派发基础 TitleWindow作为Flex中的...

    javascript 主动派发事件总结

    以下是一些主要的JavaScript主动派发事件的方法与知识点总结。 1. 使用dispatchEvent() dispatchEvent()是标准的事件触发方法,在调用这个函数之前需要创建一个事件对象。我们通过document.createEvent()方法创建一...

    Android之Input子系统事件分发流程 - CSDN博客1

    本文将深入探讨Android Input子系统的事件分发流程,帮助开发者理解这一复杂而重要的过程。 首先,让我们从ViewRootImpl类的setView方法开始。这个方法在为一个新视图设置根视图时被调用。在步骤2,`new Input...

    cocos creator 3.8 事件派送、监听、移除

    cocos creator 3.8 事件派送、监听、移除

    EventDispatcher,js事件派发器,javascript事件派发器

    在JavaScript编程中,事件派发器(EventDispatcher)是一个核心概念,它允许对象之间通过事件进行通信,从而实现解耦和模块化的代码设计。EventDispatcher是JavaScript中的一个设计模式,通常用于实现事件驱动的编程...

    QT事件学习

    程序可以调用 QApplication::postEvent() 函数将事件放入 Qt 的消息队列中,或者调用 sendEvent() 函数直接派发事件。 三、QT 事件的处理 QT 事件的处理可以分为两种方式:同步和异步。QT 的事件循环是异步的,当...

    自定义事件在xcontrol控件调用过程中传递数据

    当需要传递数据时,将数据打包到之前定义的数据结构中,然后调用“派发事件”函数,将事件和数据一起发送出去。 在调用XControl的VI(本例中的“test”VI)中,我们需要监听并处理这个自定义事件。在“test”VI的...

    android事件派发验证demo

    事件派发机制确保了用户与界面的交互能够正确地被处理和响应。本示例"android事件派发验证demo"旨在帮助开发者深入理解并验证这一机制。下面我们将详细探讨Android事件派发的工作原理、涉及的概念以及如何通过...

    flex自定义组件事件DEMO

    - 派发事件:在组件中使用dispatchEvent方法触发自定义事件。 3. 事件处理:处理自定义事件通常需要在组件内部注册事件监听器,并在监听器函数中处理事件。监听器可以添加到组件本身或其父组件上,使用...

    PHP 事件机制(2)

    - `dispatch`方法用于派发事件,即执行所有已注册的事件处理函数。它接收一个事件对象`$event`,并设置`$event-&gt;target`为当前调度器对象。然后,通过事件类型字符串`$eventstr`查找并调用`_callback_method`数组中...

    ActionScript的自定义组件及自定义事件例子

    3. **派发事件**:在需要触发事件的地方,使用`dispatchEvent()`方法发送自定义事件。 4. **监听事件**:在接收方组件中,使用`addEventListener()`方法添加事件监听器,处理自定义事件。 在提供的“WinCCALLMine”...

    flex 事件学习

    在这个项目中,我们可能会看到如何创建事件、如何派发事件以及如何注册和处理事件。例如,一个简单的按钮点击事件处理可能如下: ```xml &lt;!-- MXML代码 --&gt; 点击我" click="handleButtonClick(event)"/&gt; &lt;![CDATA...

    c#委托事件异步例子

    2. 派发事件: ```csharp if (MyEvent != null) { MyEvent("Event Fired!"); } ``` 3. 订阅和取消订阅事件: ```csharp public class Subscriber { public void Subscribe() { Publisher.MyEvent += ...

    Android点击事件派发机制源码分析

    在Android系统中,点击事件的派发机制是一个关键的组件,它确保了用户与界面的交互能够正确地被处理和响应。本文将深入探讨Android点击事件的派发流程,从Activity到底层View,以及源码解析,帮助读者理解这一过程。...

    AS事件侦听案例,源码

    // 在某个对象上派发事件 myObject.dispatchEvent(new CustomEvent(CustomEvent.MY_EVENT)); ``` 5. **事件监听器优先级**:AS3允许你为事件监听器指定优先级,数值越大优先级越高,先执行。这通过`...

    一个由MVC设计模式开发的例子,初学FLEX设计模式很好的资源

    首先编写一个事件类,继承Cairngorm中的CairngromEvent事件,在派发事件之前把需要传值的参数放到绑定类中去, 得到的一系列参数存储在ValueObject类的公共变量中,ValueObject类是继承cairngrom类中valueobject类的,...

    面试官-Vue.js 中的 $emit 和 $on 方法有什么区别?.pdf

    $emit 方法只能向父组件或祖先组件派发事件,不能向子组件或后代组件派发事件。$on 方法可以监听来自任何组件的事件,但需要指定事件的作用域,使得事件只在指定的组件中有效。 在实际开发中,我们可以根据需要选择...

Global site tag (gtag.js) - Google Analytics