| Listener的概念存在不是为了抢/覆盖原目标程序的事件,是为了测试和提高程序运行效率而存在的,所以在Flash
MX中的Listener也是同样,优先级会低于原目标事件的相同事件,而只有当目标的生存期消失或者目标使用了取消监听的方法才是Listener的生存期的重点。直观的可以表达为一个人正在吃饭碰巧一只蚊子在他吃饭的时候才喝你的血液,这个人吃多少它喝多少(大肚蚊子君),但不会影响到这个人正常的生活(知道拍死它或者这个人不小心正常/异常死亡为止)。
Selection:
Selection可以获取的只有onFocus事件。
createTextField("tf",2,100,200,100,20);
tf.text="my design sucks?";
lsn3 = new Object();
lsn3.onSetFocus = function () {trace("focus")
};
Selection.addListener(lsn3);
Selection.setFocus(tf);
Selection的Listener只有在该对象获取焦点或者使用setFocus方法的时候才会触发,而这些的必要条件是用户使用鼠标点击了一个文本区(场景内存在一个文本区对象)。
不过如果增加onSelect该有多好……(其实用onMouseUp和getendindex也可以实现)。
Stage:
Stage的更加简单,只是当场景的大小发生变化(场景缩放)的时候获取onResize事件,前提条件是stage.scalemode=”noscale”且不是ShowAll显示。
lsn4 = new Object();
lsn4.onresize = function () {trace("size
changing...") };
Stage.scaleMode="noscale";
Stage.addListener(lsn4);
|