
从Flash 5的时候,我就一直在抱怨为什么enterframe的速度这么固定还这么慢?为什么对于Key对象我还必须去手动建立一个MovieClip来接收事件并触发它?为什么我不能及时准确地接受到我需要的信息呢?亿万个为什么总是关于速度和效率的话题,终于Flash MX带来的一个新概念让我得到满足,那就是Listener——及时监听对象。
说起这个对象,其实在很多C语言程序中并不是什么新概念,它主要是作为测试环境中的消息接受器或者是改进程序的效率而存在的,但在Flash MX是第一次出现,也是恰到好处地出现。
Listener对象需要包含调用目标所需要的事件集合,事件集合内可以定义对事件的处理程序,目标函数如果需要Listener对象,必须支持加入Listener的方法。在Flash MX中支持Listener的对象有六种:FStyleFormat、Key、Mouse、Selecti;
lsn3 = new Object();
lsn3.;
Stage.addListener(lsn4);
TextField:
可以获取的是;
lsn5 = new Object();
lsn5.onScroller = function () {trace("text scrolling") };
lsn5.onChanged = function () {trace("text changed") };
txt.addListener(lsn5);
当文本超过最大长度的时候或者用户按下了scroll按钮的时候并且没有超过最高/最低scroll范围的时候取得onScroller响应;而用户输入文本的时候响应onChanged事件FStyleFormat:
FStyleFormat的Listener的作用针对于Components。当用户使用了Components UI或者自定义的Components的时候,如果使用了addListener,那么新的Components的样式就会继承为Listener的样式,例如常用的既是:
globalStyleFormat.background=0x333333;
globalStyleFormat.addListener(ckbox);
场景中存在了一个Components UI的check box的Instance,那么只要使用了addListener之后,那个instance的背景将跟随globalStyleFormat的背景色(自定义的styleFormat也可以)。
源文件:点击下载
Tips:
Listener和Handler的区别,从本质即可表达为一个是对象,一个是程序
无忧CMS,5ucms.org建站仿站首选!