zoukankan      html  css  js  c++  java
  • [Flex] Flex 控件&类 的自定义事件添加

    NewClass源码摘要:本文记录了Flex中给控件和类加入自定义事件的步骤。

    正文:虽然网上已经有很多类似的资料了, 不过还是想自己写一篇,作为存档。

    (一)给类A加入自定义事件FavPathDelEvt,Appliaction调用A,并响应A的事件

    (1)写一个自定义事件as类,类中附带参数Index。

    package NewClass
    {
        
    import flash.events.Event;
        
        
    public class FavPathDelEvt extends flash.events.Event
        {
            
    private var _index:int;
            
            
    public function set Index(index:int):void
            {
                _index 
    = index;
            }
            
            
    public function get Index():int
            {
                
    return _index;
            }
            
    public function FavPathDelEvt(type:String, index:int)
            {
                Index 
    = index;
                
    super(type);
            }
        }

    } 

    (2)在需要触发这个事件的类(也就是A类)中加上[Event...]的申明,并且写上触发函数。

    package NewClass
    {
        
    import NewClass.FavPathDelEvt;
        
    import mx.core.Container;
        
    import flash.utils.setTimeout;
        
        [Event(name
    ="onDelPath", type="NewClass.FavPathDelEvt")]
        
        
    public class A extends Container
        {    
            
    public function A()
            {
                flash.utils.setTimeout(function():
    void{               //这里设置了一个延时函数,类初始化2000ms后触发事件
                    DispatchEventofA();
                },
    2000,null);
            }
            
            
    private function DispatchEventofA():void
            {
                
    this.dispatchEvent(new NewClass.FavPathDelEvt("onDelPath",1));
            }
        }
    }

    (3) 最后,在Application所在的mxml中,加上事件处理函数,并将该函数和A的事件绑定。

     <?xml version="1.0" encoding="utf-8"?>

    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="500" minHeight="350" creationComplete="Init()">

        
    <mx:Script>
            
    <![CDATA[
                import NewClass.A;
                
                import mx.controls.Alert;
                
                private function Init():void
                {
                    var a:A = new A();
                    a.addEventListener("onDelPath",FavPathDelEvt_Handler);//将A的事件和Application中的函数绑定
                }
                private function FavPathDelEvt_Handler(evt:FavPathDelEvt):void
                {
                    Alert.show("FavPathDelEvt of A is called, Index is " + evt.Index);
                }
                
            
    ]]>
        
    </mx:Script>
    </mx:Application>

    运行程序后,2秒后会出现调用事件的提示对话框。

     (二)给自定义组件mxml加入自定义事件

    给组件加入自定义事件基本和(一)一致。区别在于,mxml中可以通过加入

    <mx:Metadata> 
            [Event(name="onDelPath", type="NewClass.FavPathDelEvt")]
    </mx:Metadata>   

    来完成和A中 [Event((name="onDelPath", type="NewClass.FavPathDelEvt")] 相同的功能

    --------------------------------

     源码下载链接:NewClass.rar

    --------------------------------- 

    转载请注明出处,au revoir! 

  • 相关阅读:
    Google TensorFlow 机器学习框架介绍和使用
    Linux下chkconfig命令详解转载
    wireshark----linux
    linux 开机自启转载
    linux 开机自启
    linux 开机自启脚本
    当进行make命令学习是出现error trying to exec 'cc1': execvp: No such file or directory
    centos6.4安装GCC
    安装cmake
    整型数转字符串
  • 原文地址:https://www.cnblogs.com/felixfang/p/1969177.html
Copyright © 2011-2022 走看看