Flex 事件传递小结

站点的一个Flex页面在(Main.mxml),里面包含两个组件
一个显示图片(PhotoArea.as)
一个显示控制条(ToolBar.mxml)

那么如何让这两个组件之间传递事件呢?
事件机制真是Flex的核心内容,很好很强大,这个东西让Ajax相形见拙。
下面我就以一个例子来说明一下这个传递是如何实现的

1.首先“定义”,定义一个Event类(PhotosEvent),马老师说这样比较好管理。

    package com.exhdLib
    {
        import flash.events.Event;
    
        public class PhotosEvent extends Event
        {
            //这快是这个文件的核心,可以扩展多个事件,形成事件列表,一目了然。
            //而且打点后就会出现在提示里,很方便很方便。
            public static const PAUSEMOVE :String = " PauseMove";
            public function PhotosEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
            {
                super(type, bubbles, cancelable);
            }
            
        }
    }

2.然后“调用”,在控制条(ToolBar)里相应的地方,写派发的事件。

    //看见没有,我们调用的事件,就是在PhotosEvent类里定义好的,清楚吧。
    //注意前面要引用一下PhotosEvent类
    dispatchEvent(new PhotosEvent(PhotosEvent.PAUSEMOVE));

3.最后“响应”,有两种方法:
    一种是添加监听事件,在Main.mxml里添加如下代码
    
        import com.exhdLib.PhotosEvent;
        import flash.events.Event;
        
        private function Init():void{
            Toolbar.addEventListener(PhotosEvent.PAUSEMOVE,PausePhoto);
        }
        private function PausePhoto(Event:PhotosEvent):void{
             //do somthing
        }
        
    一种是在ToolBar组件里增加响应方法:
    //注意红色的必须和PhotosEvent里的事件名称相同 PauseMove
   <mx:Metadata>
        [Event(name=" PauseMove ", type="com.exhdLib.PhotosEvent")]
    </mx:Metadata>
    
    这样就可以在Main.mxml直接吊用这个方法了
    <ToolBar:BarContral id="Toolbar"
        PauseMove=" doSomethingCode "
        width="100%" height="20%" XML_URL="data/photo.xml"/>


    两种方法效果一样,就看个人喜好了
    
    
        
        

转载于:https://www.cnblogs.com/haoch_00/archive/2009/11/05/1596799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值