Flex事件机制基础(二)
4. 理解事件阶段(Event Phases) 我们把事件触发源分为两类:一类是那些显示在界面中的元素抛出的事件,一类是那些不在界面中显示的元素抛出的事件。很简单,举个例子:第一类如URLLoader对象去load图片或其他资源所抛出的如complete事件,就属于第一类。界面上的一个按钮所抛出的click事件就是第二类,它会触发一个事件流,引发一系列的事件,它又分三个阶段:捕获(capture),执行(target) 和冒泡(bubble),姑且这样表达这三个阶段。 捕获阶段(capture) 在这个阶段,Flash Player会去查找事件的触发源,它是通过根显示元素(root display object)逐层向下寻踪,直到找到事件的发起源头,如你在button上click后,Flash Player找到的事该button对象。在这个阶段监视器(listener)默认是不会收到任何消息的(默认只在target和bubble阶段收到消息)。如果你想在捕获阶段让listener收到消息并有所动作,那么你可以在注册的时候改变第三个参数为true,如下面的方法:object.addEventListener(MouseEvent.CLICK, onClick, true); 该阶段听起来很陌生,事实上它很少使用。但它却在事件流中扮演很重要的角色。它可以在事件到达子元素(child elements)之前被application捕获,当然也就可以阻 止事件到达子元素。 目标执行阶段(target) 在这个阶段是事件的执行阶段,也就是我们常用的用来处理事件流的代码。 冒泡阶段(bubble) 最后的这个阶段其实就是第一个阶段的逆向过程。它就是在事件代码执行完毕后通过子元素逐级向父元素发出该事件,一直到根元素。在这个阶段你不需要特别的为监听器指定什么,你只要正常的注册事件就可以了。监听器会在该阶段收到通知。但前提是该事件是能够bubble的。 5. 事件的优先级(Event Prioriy) 事件优先级我们用的很少,但理解它却很重要,但你添加一个事件的时候你可以设置监听器的优先级,优先级越高,你的监听器函数会越早被调用到。当然两个优先级相同的监听器是根据他们被添加的顺序来决定优先级的。这个优先级指的是在同一个事件阶段(如capture,target,or bubble).一次,事件处理的优先级是先看阶段再看优先级的。 6. 弱引用(Weak Reference) 弱引用时事件处理中非常重要的概念。要理解它为什么这么重要,你首先要理解Flash Player是如何进行垃圾回收的(garbage collection). 顾名思义,垃圾回收就是回收那些不再使用的资源,主要是内存资源,否则会致系统崩溃。 Flash Player是通过引用计数器(reference counting)以及标记与清除
相关文档:
一 网站
1 在线图片处理工具网站http://www.flauntr.com/
。
2 官方网站的例子 http://examples.adobe.com/flex3/componentexplorer/explorer.html
3 官方AS3学习资料网站 http://www.adobe.com/devnet/actionscript/
4 这儿推荐一个网址,不仅可以对其它的数据类型进行学习,还有基础的语法,非常不错:
  ......
今天在修改一个游戏bug问题的时候遇到的
这游戏本来是中文版的,后来被翻译成英文了,英文的字符串的长度一般都会比中文的字符多的,所以很多情况下要加滚动条了
今天又有个显示文字不全的,原本用的是text标签的那个不能显示滚动条所以用textarea替换掉了,可是竟然没有反应不显示滚动条
郁闷!!!!
我添加了 ......
先用现成的组件玩一下,一会再去看看组件源码研究一下。
http://code.google.com/p/flex-iframe/
下载了flexiframe.swc,引入工程。
flex代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
......
一位Flex和JavaFX的RIA开发者在本篇文章中对Flex,JavaFX和Silverlight的功能和优缺点各自做出了评论。JavaFX1.1于今年2月发布,2.0版的发布也正在计划中。
Flex, JavaFX, Silverlight…
坦白来说,在开发这个应用期间,我在内心一直在比较用JavaFX做与用Adobe Flex做同样的事情。
简单说来,在今天, Flex比Jav ......
strategyMarketsOfCurrentStrategy.addEventListener(CollectionEvent.COLLECTION_CHANGE, strategyMarketsDataChangedHandler);
strategyMarketsOfCurrentStrategy.removeAll(); &nbs ......