惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
量子位
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
T
Tenable Blog
博客园 - 叶小钗
宝玉的分享
宝玉的分享
P
Privacy International News Feed
T
Tor Project blog
博客园_首页
AWS News Blog
AWS News Blog
雷峰网
雷峰网
C
Cisco Blogs
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 【当耐特】
T
Threat Research - Cisco Blogs
Last Week in AI
Last Week in AI
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Schneier on Security
博客园 - Franky
W
WeLiveSecurity
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
大猫的无限游戏
大猫的无限游戏
腾讯CDC
L
Lohrmann on Cybersecurity
J
Java Code Geeks
美团技术团队
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX

博客园 - Morris

C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(673,5): error MSB3491: 未能向文件 - Morris 在Flash中管理鼠标右键 Java与Action Script(Flash)类型对照 WinAPI--Win32 系统入口函数介绍 JavaScript 取得目前所在分割FRAME的寬度 用 FLASH CS5 作一個於 FLEX 可控制的 SWC 組件 Flash 創建好的 SWC 組件,如何在 FLEX 作一UI、簡單測試 Develop Android APP in Flash CS5 How to use Flex WebService Component in Flash Generate a iPhone certificate signing request on Windows 动态命名影片剪辑 Associative arrays 訪問父MOVIECLIP下的所有依序列號命名的子MOVIECLIP - Morris - 博客园 心跳模拟 CodeSmith基础(一) - Morris AS2.0中实现数据结构-哈希表 - Morris Alcon 使用方式重點 - Morris Flash AS2 同 VB.NET 類似的 WITH 寫法 - Morris flash AS3应用程序模块化开发与ApplicationDomain - Morris
as3 addEventListener各参数详解
Morris · 2011-06-26 · via 博客园 - Morris

估计不少人都没用过addEventListener()方法的参数,我就是其中一个。
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
useCapture:Boolean(default = false)确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。 如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。 如果 useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。用这个参数搭配stopPropagation()/stopImmediatePropagation()可以做些很偏门的事。

addEventListener(eventName,functionName,true/false,int,true/false);

动作,函数名,动作捕抓流活动状态,优先级,不需要时是否在内存清掉
Demo如下,(注:层次关系是mc1.mc2.mc3):

IEventDispatcher接口定义五个方法,如以下代码中所示:

package flash.events
{
public interface IEventDispatcher
{
function addEventListener(eventName:String,listener:Object,useCapture:Boolean=false,priority:Integer=0,useWeakReference:Boolean=false):Boolean;
function removeEventListener(eventName:String,listener:Object,useCapture:Boolean=false):Boolean;
function dispatchEvent(eventObject:Event):Boolean;
function hasEventListener(eventName:String):Boolean;
function willTrigger(eventName:String):Boolean;
}
}

Flash Player API使用EventDispatcher类来实现IEventDispatcher接口,该类用作可以是事件目标或事件流一部分的所有类的基类。DisplayObject类继承自EventDispatcher类。这意味着,显示列表中的所有对象都可以访问IEventDispatcher接口的方法。

addEventListener()方法是IEventDispatcher接口的主要函数。使用它来注册侦听器函数。两个必需的参数是type和listener。type参数用于指定事件的类型。listener参数用于指定发生事件时将执行的侦听器函数。listener参数可以是对函数或类方法的引用。
通过使用addEventListener()方法的useCapture参数,可以控制侦听器将处于活动状态的事件流阶段。如果useCapture设置为ture,侦听器将在事件流的捕获阶段成为活动状态。如果useCapture设置为false,侦听器将在事件流的目标阶段和冒泡阶段处于活动状态。要在事件流的所有阶段侦听某一事件,你必须调用addEventListener()两次,第一次调用时将useCapture设置为true,第二次调用时将useCapture设置为false.
ActionScript3.0中的priority参数用于设置该事件侦听器的优先级。默认值为0,但你可以将它设置为负整数值或正整数值。将优先执行此数字较大的事件侦听器。对于具有相同优先级的事件侦听器,则按它们的添加顺序执行,因此将优先执行较早添加的侦听器。
可以使用useWeakReference参数来指定对侦听器函数的引用是弱引用还是正常引用。通过将此参数设置为true,可避免侦听器函数在不再需要时仍然存在于内在中的情况。Flash Player使用一项称为“垃圾回收”的技术从内在中清除不再使用的对象。如果不存在对某个对象的引用,则该对象被视为不再使用。垃圾回收器不考虑弱引用,这意味着如果侦听器函数仅具有指向它的弱引用,则符合垃圾回收条件。

removeEventListener()方法用于删除不再需要的事件侦听器。删除将不再使用的所有侦听器是个好办法。必需的参数包括eventName和listener参数。

dispatchEvent()方法将自定义事件对象调度到事件流。该方法唯一接受的参数是对事件对象的引用,此事件对象必须是Event类的实例或子类。调度后,事件对象的target属性将设置为对其调用了dispatchEvent()的对象。

如果在特定显示列表对象上发现特定事件类型的事件侦听器,hasEventListener()方法将返回true。如果发现特定显示列表对象的侦听器,willTrigger()方法也会返回true。但willTrigger()不但检查该显示对象上的侦听器,还会检查该显示列表对象在事件流所有阶段中的所有父级上的侦听器。