`
iamzealotwang
  • 浏览: 121361 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

As3 Event

    博客分类:
  • As3
阅读更多

target 属性:

 

target 属性包含对作为事件目标的对象的引用。在某些情况下,这很简单,例如当麦克风变
为活动状态时,事件对象的目标是 Microphone 对象。但是,如果目标在显示列表中,则必
须考虑显示列表层次结构。
例如,如果用户在包括重叠的显示列表对象的某一点输入一个鼠
标单击,则 Flash Player 始终会选择距离舞台层次最深的对象作为事件目标。 

对于复杂的 SWF 文件,特别是那些通常使用更小的子对象来修饰按钮的 SWF 文件,
target 属性可能并不常用,因为它通常指向按钮的子对象,而不是按钮。在这些情况下,常
见的做法是将事件侦听器添加到按钮并使用 currentTarget 属性,因为该属性指向按钮,而
target 属性可能指向按钮的子对象。

 

ActionScript 3.0 中包括它是为了在组织事件侦听器时提供更大的灵活性。调用
addEventListener() 时,可以将一个整数值作为 priority 参数传递,以设置该事件侦听
器的优先级。默认值为 0,但您可以将它设置为负整数值或正整数值。将优先执行此数字较
大的事件侦听器。对于具有相同优先级的事件侦听器,则按它们的添加顺序执行,因此将优
先执行较早添加的侦听器。

 

从概念上来说,事件流分为三部分。

第一部分称为捕获阶段,该阶段包括从舞台到目标节点的父节点范围内的所有节点。

第二部分称为目标阶段,该阶段仅包括目标节点。

第三部分称为冒泡阶段。冒泡阶段包括从目标节点的父节点返回到舞台的行程中遇到的节点。

 

Example:

定义一个Event类型Class:

ActionScript 3语言:
package
{
  import flash.events.Event;

  /**
   * When user want to user Event , then create a class extends
   * flash.events.Event
   */
  public class UserEvent extends Event
  {
    public static const EVENT_TEST:String="EventTest";

    private var _message:String;
    /**
     * @param type              定义该Event的Type值,外部addListener通过该值确定是否监听该Event
     * @param bubbles        此Event是否参与冒泡阶段
     *  bubbles 属性
     *  如果事件对象参与事件流的冒泡阶段,则将该事件称为 “冒泡” ,这指的是从目标节点将事
     *  件对象往回传递,经过目标节点的父节点,直到到达舞台。Event.bubbles 属性存储一个布
     *  尔值,用于指示事件对象是否参与冒泡阶段。由于冒泡的所有事件还参与捕获和目标阶段,
     *  因此这些事件参与事件流的所有三个阶段。如果值为 true,则事件对象参与所有三个阶段。
     *  如果值为 false,则事件对象不参与冒泡阶段。
     *
     * @param cancelable
     *
     */
    public function UserEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
    {
      super(type, bubbles, cancelable);
    }

    public function get message():String{ return _message; }
    public function set message(v:String):void{ _message=v; }
  }
}

 

 

定义EventReceive:

 

ActionScript 3语言:
package
{
  import flash.display.Sprite;

  public class EventReceiver extends Sprite
  {
    private var receiverName:String;
    public function EventReceiver(_name:String)
    {
      super();
      this.receiverName = _name;
      this.addEventListener(UserEvent.EVENT_TEST , onEvent);
    }

    public function sendEvent():void{
      var userEvent:UserEvent = new UserEvent(UserEvent.EVENT_TEST ,true); //①
      userEvent.message = "(**&&**)";
      this.dispatchEvent( userEvent );
    }

    private function onEvent(e:UserEvent):void{
      trace(receiverName + " receive message :"+ e.message );
    }
  }
}

Main:

ActionScript 3语言:
package
{
  import flash.display.Sprite;

  public class TestEvent extends Sprite
  {
    public function TestEvent()
    {
       var node1:EventReceiver = new EventReceiver("Node1");
       var node11:EventReceiver = new EventReceiver("Node11");
       var node12:EventReceiver = new EventReceiver("Node12");
       var node121:EventReceiver = new EventReceiver("Node121");
       var node13:EventReceiver = new EventReceiver("Node13");
       var node2:EventReceiver = new EventReceiver("Node12");

       this.addChild(node1);
       this.addChild(node2);

       node1.addChild(node11);
       node1.addChild(node12);
       node1.addChild(node13);
       node12.addChild(node121);
       node12.sendEvent();
    }
  }
}

整体树结构

Stage---Node1

               --------------Node11

               --------------Node12  //发送事件(事件产生)

                         -------------------Node121

        ---Node2

运行结果

Node12 receive message :(**&&**)
Node1 receive message :(**&&**)

 

结果分析:

1· 由于事件不是由舞台操作(点击鼠标,键盘操作等)导致的事件触发 所以事件的捕获阶段并不存在

   捕获节点应为从舞台到事件发生点的阶段,若存在应为Stage--->Node1----->Nodel12

2· 第一行Node12 receive message :(**&&**) Trace出来消息属于事件流第二部分 这部分仅包括事件目标阶段

3· 第二行Node1 receive message :(**&&**) Trace消息之所以存在是因为 在①中 设置bubbles属性为True及Event参与冒泡阶段,所以Node1可以接收到Node12冒泡到Stage回来的消息

 

 

 

 

分享到:
评论

相关推荐

    很好的flash as3 event 例子

    标题中的“很好的flash as3 event 例子”表明这是一个关于Adobe Flash ActionScript 3.0 (AS3)事件处理的示例。ActionScript是Flash平台上用于创建交互式内容、动画和应用程序的编程语言。在这个例子中,用户点击一...

    AS3中的EVENT

    在ActionScript 3 (AS3)中,EVENT是事件处理的核心概念,它是程序间通信的一种方式,用于在不同对象之间传递信息。AS3中的事件模型是基于观察者模式的,它使得一个对象(称为事件调度器或事件源)能够在特定状态改变...

    flash as3 的例子

    1. **事件类**:AS3中所有的事件都继承自Event类,比如MouseEvent、KeyboardEvent和TimerEvent等。每个事件类都有特定的类型,比如"click"或"keydown"。 2. **事件流**:AS3有三种事件流:冒泡、捕获和目标。冒泡流...

    UDP.rar_as3 udp_flash as3.0 UDP_flash发送udp_udp as3_windows as3.0

    这个"UDP.rar_as3 udp_flash as3.0 UDP_flash发送udp_udp as3_windows as3.0"的压缩包,看起来包含了一个名为"UDP.fla"的文件,这是一个Flash的源文件,可能是一个AS3的项目,用于演示或教学如何在Flash中使用UDP...

    AS3中文版帮助文档

    AS3,全称为ActionScript 3.0,是Adobe公司开发的一种面向对象的编程语言,主要用于创建富互联网应用程序(RIA)以及在Adobe Flash Player或Adobe AIR环境下运行的交互式内容。这个“AS3中文版帮助文档”对于正在...

    as3 视频播放器 纯as3

    【标题】:“AS3 视频播放器 纯AS3” 在AS3(ActionScript 3)中创建一个视频播放器是一项常见的任务,尤其对于Web开发者和多媒体设计师来说。AS3是Adobe Flash Professional和Flex Builder等工具所使用的编程语言...

    as3 MP3播放器

    AS3 MP3播放器是一种基于ActionScript 3.0(AS3)开发的音频播放解决方案。ActionScript是Adobe Flash Professional和Flex Builder等工具所使用的编程语言,主要用于创建交互式网页内容,包括游戏、动画和多媒体应用...

    AS3移动端多点触摸带例子

    AS3(ActionScript 3)是Adobe Flash Professional和Flex SDK等工具所使用的编程语言,广泛应用于创建交互式网页内容和移动应用。本文将深入探讨AS3如何实现移动端的多点触摸功能,并通过标题和描述中提及的例子进行...

    AS3 滚动条

    AS3滚动条是ActionScript 3.0编程语言中实现的一种用户界面元素,它主要用于在内容超出可视区域时提供导航。在AS3中,滚动条是通过Flash的UI组件库来创建和控制的,允许用户在长或宽的数据显示区域中进行上下或左右...

    flash as3 mp3player类

    在Flash AS3中,开发一个MP3播放器涉及到多个关键知识点,这些知识点涵盖了音频处理、事件处理、ActionScript 3编程以及与用户界面交互的基本原理。以下是对标题和描述中涉及的技术点的详细解释: 1. **...

    As3 Tween Library

    TweenMax extends the extremely lightweight, fast TweenLite engine, adding many useful features like timeScale, AS3 event dispatching, updateTo(), yoyo

    Processing-Event-System:用于处理的类 AS3 事件

    #Processing-Event-System 这是尝试创建一个事件系统以进行,该系统以 ActionScript 3 事件系统为模型。 它提供了通过事件松散地连接和断开不同类的能力,事件可以“监听”事件并在发生事件时调用函数。 这是正在...

    AS3实现GPS

    AS3(ActionScript 3)是Adobe Flash Platform的主要编程语言,用于创建互动式内容、应用程序以及网络服务。在AS3中实现GPS功能,主要是通过与设备的Geolocation API交互,来获取用户的地理位置信息,包括经纬度。这...

    FLASH AS3 SOCKET收发16进制示例

    在IT行业中,Flash AS3是一种广泛用于创建交互式应用程序、游戏和富互联网应用(RIA)的编程语言。Socket通信是网络编程的一个重要组成部分,它允许客户端和服务器之间进行双向通信。在AS3中,我们可以使用Socket类...

    AS3跳转url链接

    AS3(ActionScript 3)是Adobe Flash Platform中用于创建交互式内容、动画以及富互联网应用程序的主要编程语言。在AS3中实现跳转URL链接的功能是相当基础且实用的,尤其对于开发网络应用或者游戏中的按钮点击事件...

    一个简单的as3例子

    4. **事件处理(Event Handling)**:AS3中的事件模型非常强大,通过addEventListener和removeEventListener方法可以添加和移除事件监听器。 5. **动画(Animation)**:AS3提供了Tween类和Timeline类来创建简单的...

    as3殿堂之路 源码 全集

    《AS3殿堂之路》是AS3编程者的一本重要参考书籍,由孙颖撰写,它深入浅出地讲解了ActionScript 3(AS3)的核心概念和技术,旨在帮助读者掌握AS3编程的基础与精髓。这本书的源码全集包含了大量的示例代码,是学习和...

    as3基础模块

    AS3(ActionScript 3)是Adobe Flash Platform的主要编程语言,用于创建富互联网应用程序(RIA)、游戏、动画以及交互式内容。AS3的基础模块涵盖了语言语法、对象模型、类和接口、事件处理、数据结构、网络通信等多...

    FlipPage-as3

    《深入探索AS3实现的FlipPage翻页效果》 在数字时代,电子书籍和互动媒体已经成为我们生活的一部分。为了提供更接近实体书的阅读体验,许多开发者致力于开发模拟真实翻页效果的技术。其中,“FlipPage-as3”项目...

Global site tag (gtag.js) - Google Analytics