易截截图软件、单文件、免安装、纯绿色、仅160KB

flex 事件机制

Flex的事件其实很容易明白,象JAVA语言一样,给某个控件注册一个listener,然后事件发生的时候触发相应的函数,这点我相信大多数人都能够明白。今天我想要说的不是这个,而是更加细节的一些东西。
1.事件的传播过程。
Flex事件有下面三个阶段,当事件发生时依次为:
1.capturing(捕捉)
2.targeting(目标)
3.bubbling(起泡或者回溯)
在这些阶段,程序中从根节点到触发事件的节点(这里的节点就是指可以把整个MXML文件看作是一个XML,那么节点就是各个标签)都有机会来响应事件。假 设用户点击了HBox容器中的一个Button,在capturing阶段Flex会检查Application和HBox是否对此事件定义了 listener,然后在targeting阶段Flex触发Button的listener,在bubbling阶段Flex又会检查 Application和HBox,不过这次的顺序和capturing状态时相反。也就是说,事件发生的时候从根节点到目标节点的父节点有两次机会可以 响应事件。
整个事件的这三个阶段也就形成了一个事件流。所以你可以在工作流中的任意节点上注册listener而不用担心不会被触发。还有一点需要说明的是,只有可 视的对象(比如一些容器和控件)才有第一个和第三个阶段,而像Socket这种没有界面的对象只能在targeting时被触发,它无法参与第一个和第三 个阶段。
虽然每个对象都有两次响应事件的机会,但是在默认情况下,capturing状态时没有对象会响应事件,除非你特别声明要在capturing阶段响应。你可以把addEventListener() 中的use_capture参数设置为true,这样就可以在capturing阶段响应了。但是请注意,一旦在capturing中响应过之后在bubbling阶段就不会再响应了。如果你想要让listener在capturing和bubbling阶段都响应的话,只能两次调用addEventListener() ,一次把use_capture参数设置为true,第二次把它设置为false。
另外,你只能为可以触发一个事件的对象注册此事件的listener。比如,你就不能为一个Form定义一个Click事件,即使它包含一个Button控件,因为Form无法触发Click事件。
你可以使用下面两个函数来中止事件的传播:
stopPropagation()
stopImmediatePropagation()
两者唯一的区别就是stopPropagation()是在当前对象的所有listener执行完毕之后再中止事件的传播,而另外一个是立刻终止。
2.Flex事件中的target和currentTarget
每个Event对象都有target和currentTarget属性,他们可以帮助你跟踪事件传播过程。target指的是触发事件的对象,而 currentTarget则


相关文档:

flex 各组件对应的样式属性 中

DataGrid组件样式属性
         backgroundColor               背景色
       backgroundAlpha           &nb ......

Flex 集合(ArrayCollection)

合是ActionScript 中功能强大的基于索引的数组组件,添加了如对内容进行排序等功能,
操作数组的读取位置,创建经过排序的数组视图。集合也能通知其任意事件监听器监听其数
据是否改变,以及任何数据项被添加到源数组时可执行自定义逻辑。当数据改变时可通知其
监听器,这是集合的新功能,叫数据绑定,还有就是允许DataG ......

flex datagrid .net

==============flex===========
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="Service.GetCustomers.send();" width="689" height="592">
 
    <mx:WebService id="Service"  wsdl="ht ......

flex 布局的问题 去掉边框

commpent
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas   xmlns:mx="http://www.adobe.com/2006/mxml" 
     creationComplete="initApp()" backgroundDisabledColor="#EEC6C6"
     bord ......

flex中的addEventListener方法

flex控件对象、RemoteObject等都有一个共同的方法addEventListener。
addEventListener方法如下:
public function addEventListener(type:String, listener:Function,
useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
{
eventDispatcher.addEventListener(type, listener, us ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号