Posted on 2012-10-17 16:54
谁用我名字啦? 阅读(345)
评论(0) 编辑 收藏 所属分类:
flex学习之路
事件对象重要的属性和方法
flash.event.Event类的全部6个属性都是只读属性,这些属性提供了发生事件的基本信息。我们已经讨论过target和currentTarget属性(见6.2.1节的事件属性:target和currentTarget(见第103页)),并在"EventJourney的事件侦听器myEventhandler中使用eventPhase属性来获取事件旅程的阶段。Event类也提供了许多方法。我们只介绍事件对象常用的属性和方法,更详细信息请参考"Adobe FlexTM 3语言参考"(http://livedocs.adobe.com/flex/3/langref/)。
1.target和currentTarget属性
如我们刚才提到的,在事件被触发后,Flash Player就会创建事件对象,并逐一检查"事件旅程"上的节点是否针对发生的事件注册了侦听器,为事件对象赋值,并调用侦听器。事件对象源自flash.events.Event类。事件对象currentTarget属性的值会在事件流中改变,而target属性则不会变化。(关于事件对象,我们将在6.3节(见第106页)深入讨论)由此,开发者能够通过
currentTarget属性获知事件旅程现在停在了哪个节点上。
currentTarget属性:事件旅程中,currentTarget属性代表了Flash Player正在检查的节点对象。比如,当Flash Player遍历到ctnButtons对象,那么event.currentTarget就是ctnButtons对象。
target属性:target属性就是发生事件的对象。在信号灯应用中,event.target就是用户所点击的按钮对象,在事件旅程中,该属性的值始终不变。信号灯应用中,侦听器myEventHandler利用event.target来获取被点击按钮上的标签数据。此时赋给event.currentTarget属性的则是HBox容器对象ctnButtons。
2. type属性(String类型)
当用户进行鼠标操作时,Flash Player会自动调度鼠标事件MouseEvent。操作可能是鼠标点击、移动、滑动滚轮等。这些不同的操作都是通过事件类型来标记的。
type属性返回的字符串表明事件的类型。代表事件类型的字符串是大小写敏感的。Flex以常量的形式内置了许多事件类型,如Event.unloaded和MouseEvent.CLICK。
3. cancellable属性(String类型)和preventDefault()方法
默认情况下,许多事件都有 Flash Player 执行的关联行为。比如,如果用户在文本字段中键入一个字符,则默认行为就是在文本字段中显示该字符。如果需要取消TextEvent.TEXT_INPUT事件的默认行为,你可以使用preventDefault()方法来阻止显示所键入的字符。
不可取消行为的一个示例是与Event.REMOVED事件关联的默认行为,只要Flash Player从显示列表中删除显示对象,就会生成该事件。由于无法取消默认行为(删除元素),因此preventDefault()方法对此默认行为无效。
开发者可以使用Event.cancelable属性来检查是否可以阻止与特定事件关联的默认行为。如果属性Event.cancelable的值为true,则可以使用preventDefault()来取消默认行为,否则,preventDefault()无效。