`
FlexEye
  • 浏览: 17524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

AS3 的事件机制举例浅析

阅读更多

  本文只針對對初學者,高手就別看了,免得見笑,呵呵。對於AS3事件的註冊、派發、捕獲往往很難理解,我個人認爲最好是反研讀一下Adobe的入門教程。看了之後動手改一些東西吧。我們以FlexStore為例。例如我們想在購物車的mxml頁面增加一個清空所有產品的按鈕。

第一步:首先當然要建立一個 Button拉。

<mx:Button label="清空购物车" id="BTClearCart" fontSize="12" />
第二步:然後在ProductListEvent.as聲明一個事件類型。

public static const REMOVE_CatProducts:String = "removeCatProducts";
第三步:註冊監聽事件。我們在ProductCart.mxml頁面的<mx:VBox>標簽的creationComplete屬性的處理事件中註冊監聽吧。creationComplete可以理解成“加載完畢”。

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:productsView="productsView.*"
    horizontalAlign="right"
    paddingTop="8"
    paddingBottom="8"
    paddingRight="4"
    paddingLeft="4"
    horizontalScrollPolicy="off"
    verticalScrollPolicy="off"
    creationComplete="creationCompleteHandler();"               
    >
在Script中:Import事件Import:import flash.events.Event,和增加以下函數:

        private function creationCompleteHandler():void
        ...{
            this.addEventListener(ProductListEvent.REMOVE_CatProducts,ClearCartProductsHandler);      //註冊監聽事件
        }
            //處理函數
        private function ClearCartProductsHandler(evt:Event):void
        ...{
            this.numProducts = 0;          //產品數量清0
            this.total = 0;                        //縂數清0
            this.productList.RemoveAllProducts();            //當前“頁”的productList(其實是productList.mxml(可以理解成一個類)的一個實例),調用其函數RemoveAllProducts清空購物車,該函數等一下定義。
        }
 第四步:在ProductList.mxml(將它理解成類吧。這樣容易理解)定義一個函數如下:

        public function RemoveAllProducts():void
        ...{
            this.removeAllChildren();
            this.items.length = 0;
        }
第五步:在Button派發一個事件出去,派發的事件將被第一步的<VBox>捕獲。Button標簽變成如下:

<mx:Button label="清空购物车" id="BTClearCart" fontSize="12" click="dispatchEvent(new ProductListEvent(ProductListEvent.REMOVE_CatProducts))"/>
          順便在這裡説明一下,dispatchEvent就是派發事件函數,一般情況下dispatchEvent 就等於this.dispatchEvent,而在一個mxml文件裏,大多數的情況下的this,都是指當前的mxml,如果一個Button不是直接派發事件,是觸發一個Function,例如  Click="Click的處理function()",然後在“Click的處理function()”這個函數裏面dispatchEvent一個事件,那麽這個dispatchEvent就是this.dispatchEvent了,這個this就是mxml本身,跟按鈕已經沒有關係了。

          做完以上五步最後運行程序,我們發現,我們在creationCompleteHandler註冊了監聽事件ProductListEvent.REMOVE_CatProducts(Button刪除所有產品的事件),當點擊Button的時候,派發ProductListEvent.REMOVE_CatProducts事件,派發過程中被<VBox>捕獲並被處理函數ClearCartProductsHandler處理。


本文来自CSDN博客:http://blog.csdn.net/baijinwen/archive/2007/04/05/1552692.aspx

分享到:
评论

相关推荐

    浅析Android手机传感器机制及应用设计举例.pdf

    《浅析Android手机传感器机制及应用设计举例》这篇文章主要探讨了Android智能手机中传感器的工作机制以及如何利用这些传感器进行应用设计。Android系统为开发者提供了丰富的传感器接口,使得开发者能够充分利用手机...

    MVCC机制举例.xlsx

    MVCC机制举例

    Android事件分发机制全解析Demo

    3. `onInterceptTouchEvent()`: ViewGroup可以通过重写此方法来拦截子View的事件,返回true则表示父View截取了事件,事件不会传递给子View。 接下来,我们将通过四个实验来逐步揭示事件分发的奥秘: 实验一:简单...

    Android事件分发机制小Demo

    在Android开发中,事件分发机制是至关重要的一个部分,它决定了用户与界面元素交互时的行为。本小Demo主要展示了Android事件分发的过程,并通过一系列的日志截图来帮助理解这一机制。下面,我们将深入探讨Android...

    医疗机构医疗器械不良事件报告举例.doc

    医疗机构医疗器械不良事件报告举例.doc

    C#事件 举例

    C#的事件机制为对象间的通信提供了强大的支持,无论是处理用户界面的交互,还是实现组件之间的协作。理解并熟练运用事件,可以帮助开发者编写出更加健壮和可维护的代码。在实际项目中,结合委托、事件和Lambda...

    flex事件机制的demo

    Flex ActionScript3.0事件机制的Demo, 举例说明了事件的三个阶段,事件的派发,事件的侦听,事件的拦截,自定义事件等相关知识点. 以上知识点在Demo中都有体现,初学者请仔细分析代码,加强理解,多调试、修改、验证以加深...

    as3.0应用举例比较

    这个“as3.0应用举例比较”旨在通过对比三个不同的画线程序,深入解析AS3.0的编程基础和机制。我们将围绕以下知识点进行详细的探讨: 1. AS3.0的基础语法: AS3.0相比AS2.0有了显著的改进,引入了强类型系统和类的...

    H3C交换机 典型配置举例-6W100-ACL典型配置举例

    "H3C交换机典型配置举例-6W100-ACL典型配置举例" 本文将详细介绍H3C交换机中的ACL(Access Control List,访问控制列表)典型配置举例,包括允许指定的主机访问网络和拒绝指定的主机访问网络两种配置举例。 首先,...

    一类带观测传感器延时修正(时间同步)的融合算法举例浅析

    ### 一类带观测传感器延时修正(时间同步)的融合算法举例浅析 #### 关键知识点解析 在本文中,我们探讨了一类带观测传感器延时修正(时间同步)的融合算法,并通过一个日常生活中的例子来进行浅析。该例子通过...

    java反射机制讲解与应用举例

    关于java反射机制的很好的讲解,包括Java的反射机制(Reflection)、Class类、如何获得类的相关信息和运用,并且还有相应的练习,有助于更好地学习java反射机制

    Java教学中事件处理机制的探讨.pdf

    为了帮助学生更好地理解事件处理机制,教师可以通过举例、对比、模拟等手段进行教学。可以按照 Java 语言的规范要求,讲解事件处理机制的具体步骤,并通过经典的例程,易于学生接受。在学生掌握这种编程方式后,可以...

    举例说明C#委托与事件

    ### 举例说明C#委托与事件 #### 一、引言 在.NET Framework中,委托与事件是非常重要的概念。对于初学者来说,理解和掌握这两者可能会遇到一定的挑战。本文将通过具体的例子,深入浅出地讲解C#中的委托与事件。 ##...

    H3C_NAT 配置举例

    4.5.1 典型nat 配置举例 1. 组网需求 如下图所示,一个公司通过secpath 防火墙的地址转换功能连接到广域网。要求该公司能够通过防火墙ethernet3/0/0 访问internet,公司内部对外提供www、ftp和smtp 服务,而且提供...

    H3C IMC产品典型配置举例汇总集【共14个文档】.rar

    H3C iMC IVM 典型配置举例 H3C iMC MVM 典型配置举例 H3C iMC NTAUBA 典型配置举例 H3C iMC APM 典型配置举例 H3C iMC BIMS 典型配置举例 H3C iMC BYOD 典型配置举例 H3C iMC SHM 典型配置举例 H3C iMC UAM ...

    举例解析Java的反射机制

    Java的反射机制是Java语言提供的一种强大的能力,它允许程序在运行时检查和操作类、接口、字段以及方法。在Java中,反射是通过java.lang.Class类和java.lang.reflect包中的类来实现的。本篇将深入解析Java反射机制,...

    H3C VSR1000虚拟路由器典型配置举例【PDF CHM】.rar

    01-H3C VSR1000虚拟路由器基于CAS平台网络连接典型配置举例 02-H3C VSR1000虚拟路由器基于VMware平台网络连接典型配置举例 03-H3C VSR1000虚拟路由器基于KVM平台网络连接典型配置举例 04-H3C VSR1000虚拟路由器RBAC...

    H3C S12500 AAA典型配置举例.pdf

    AAA机制在网络安全和管理中扮演着非常重要的角色,本文档将对H3C S12500 AAA典型配置举例进行详细的讲解。 1. 简介 H3C S12500 AAA机制可以与RADIUS(Remote Authentication Dial-In User Service)服务器集成,...

    H3C 以太网交换机产品典型配置举例【V7版本】【共59章】.rar

    14-IPv6手动隧道+OSPFv3功能的典型配置举例 15-ISATAP和6to4相结合使用的典型配置举例 16-IPv6 over IPv4 GRE隧道典型配置举例 17-GRE和OSPF结合使用典型配置举例 18-OSPF典型配置举例 19-IS-IS典型配置举例 ...

    浅析NPS与应用举例13637.doc

    - 评分机制:NPS通常使用11个梯度,而满意度量表可能为3、5或7梯度。研究表明,虽然梯度数量可能不同,但两者反映的玩家喜好和趋势是一致的。 - 描述声明:满意度量表常对每个梯度给出具体描述,NPS仅定义两端含义...

Global site tag (gtag.js) - Google Analytics