Flex事件初探
.jpg)
作者:陈明
Flex中事件是编写应用程序的基础,事件主要是和用户交互的基础,对于Flex3使用的ActionScript3语言中,事件实际上是一个对象。事件的监听原理采用的是观察者模式。和Javascirpt语言中基本一致,事件虽然多,但是主要不外乎鼠标事件(MouseEvent)和键盘事件(KeyboardEvent)使用的最为广泛,当然如果读者有Javascirpt的编程经验学习起来就更简单了,本次我们就先来看一个关于鼠标事件的例子: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.controls.Alert; [Bindable] private var myt:String="aaa"; var g:Graphics; private function init():void { //按钮点击事件注册 btn.addEventListener(MouseEvent.CLICK,myclick); //Canvas的鼠标按下(MouseDown)事件监听注册 pan.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); //Canvas的鼠标抬起(MouseUp)事件监听注册 pan.addEventListener(MouseEvent.MOUSE_UP,onMouseUp); g= pan.graphics; } //点击事件处理 private function myclick(e:MouseEvent):void { myt="点了"; } //鼠标按下事件处理 private function onMouseDown(e:MouseEvent):void{ g.endFill(); //mouseX,mouseY是鼠标的顶级属性用来记录鼠标的位置 g.moveTo(mouseX,mouseY); //设置画笔样式 g.lineStyle(2,0xFF0000,1); //Canvas的鼠标移动(MouseMove)事件监听注册 pan.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove); } //鼠标移动事件处理 private function onMouseMove(e:MouseEvent):void { g.lineTo(mouseX,mouseY); myt=mouseX+","+mouseY; } //鼠标抬起事件处理 private function onMouseUp(e:MouseEvent):void { pan.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove); } ]]> </mx:Script> <mx:Canvas width="511" height="334" id="pan" borderColor="#FB0303" cornerRadius="10" borderStyle="solid"> </mx:Canvas> <mx:Panel y="400" width="266" height="187" layout="absolute"> <mx:Button x="80" y="97" label="Button" width="96" height="25" id="btn"/> <mx:Label x="80" y="25" text="{myt}" fontSize="12"/> </mx:Panel> </mx:Application>
总结下:鼠标事件常用的不外乎是点击以及按下抬起等等事件, flash.events 也好 mx.event.*; 也好 他们无非都是人家封装好的类,Java里不说吗万事万物皆对象 他们都是提供了一些功能比如 你注册一个鼠标离开的事件 当你鼠标离开后 你可以自己定义函数 具体做什么处理,你自己也可以写个事件你想叫什么名字都可以,一般都把这称作为观察者模式,你可以看看他们已有点时间其实那些事件里 都是String字符串而已 根据标记判断你要用哪个事件 |