zoukankan      html  css  js  c++  java
  • Flex使用自定义事件

     

    Flex

    在Flex中增加一个新的事件,通常需要如下步骤:

    1. 创建一个自定义的事件类,该类继承自flash.events.Event,比如

      1: package mypackage
      2: {
      3:   import flash.events.Event;
      4: 
      5:   public class ValueChangedEvent extends Event
      6:   {
      7:     // event name
      8:     public static const VALUE_CHANGED:String = "valueChanged";
      9:     public var value:Number; // customized filed for the event
     10:     
     11:     public function ValueChangedEvent(type:String, newValue:Number)
     12:     {
     13:       super(type);
     14:       this.value = newValue
     15:     }
     16:     
     17:     override public function clone():Event {
     18:       return new ValueChangedEvent(type, value);
     19:     }
     20:   }
     21: }

    2. 在需要发布事件的组件里面,创建一个事件的metadata标签,这样Flex Builder就能自动提示该组件支持这个事件。

    比如,在action script里面:

      1: [Event(name="valueChange", type="mypackages.ValueChangeEvent")]
      2: public class MyComponent extends TextArea
      3: {
      4:     ...
      5: }
      6: 

    在mxml里面:

      1: <mx:Metadata>
      2:   [Event(name="valueChanged", type="mypackage.ValueChangeEvent")]
      3: </mx:Metadata>
      4: 

    3. 注册事件
    在MXML里面处理事件很简单。如果要把多个对象作为事件的接受者,该怎么办呢?在Flex里面,多数Components都继承了 EventDispatcher,该类提供了管理、通知事件的功能。从这点上看,Flex比Java要方便些。

    如果要把一个对象注册为某个事件的接受者,只需下面这段代码:

      1: addEventListener(ValueChangedEvent.VALUE_CHANGED,listener);

    [注意]上面方法中的listener是一个 Function对象。如果你需要myobj里面的handleValueChanged方法能响应该事件,那么你需要将 myobj.handleValueChanged传给addEventListener方法,注意handleValueChanged后面没有" ()"。


    4. 通知事件

    在发布事件的组件里面,通过调用如下代码就能把相应的事件发布出去:

      1: var e:ValueChangedEvent = new ValueChangedEvent(
      2:   ValueChangedEvent.VALUE_CHANGED, newValue);
      3: dispatchEvent(e);

    Flex里面,创建自定义事件需要两个参数,一个代表事件类型的String对象,一个是特定于这个事件的信息(比如这里的newValue)。


  • 相关阅读:
    MySQL创建用户并修改权限
    Jenkins触发项目构建
    dotnet-cnblogs-tool使用与坑
    Jenkins集成Jmeter接口测试(Freestyle Project)
    Jenkins发送邮件没有解析变量
    JMeter + Maven in Jenkins
    Charles&Fiddler 对手机捉包失败原因分析
    Postman 脚本
    Selenium+Chrome浏览器自动加载Flash
    idea上进行远程调试项目步骤纪录
  • 原文地址:https://www.cnblogs.com/nianshi/p/1732258.html
Copyright © 2011-2022 走看看