v3_01 creating an event type and dispatching the event object? 创建一个事件类型并派发事件对象
?ex3_01
首先定义两个component
Choose.mxml
Preview.mxml

问题是:如何让Choose.mxml上的click事件,通知到Preview.mxml上呢?
这部分主要是讲,如何让两个component进行关联
主应用程序起到控制器作用
这里可以看到Choose.mxml 仍然是一个组件,它只是分派事件,将事件抛到主应用程序,而由主应用程序对事件进行处理和调度
?
创建并分派一个自定义事件有四步
1.在自定义组件中,首先使用Event元数据标签来定义事件类型的名称
在Choose.mxml中定义一个Event
<!-- Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <fx:Metadata> [Event(name="showPreview", type="flash.events.Event")] </fx:Metadata>?
2.触发和处理用户或系统事件
将事件绑定到preview按钮上
<s:Button id="preview" label="Preview" click="preview_clickHandler(event)"/>?
3.实例化事件对象
4.将该事件对象分派到它的父组件,该父组件往往就主应用程序
//以下是实例化及分派,dispatchEvent将事件传回到主应用程序 protected function preview_clickHandler(event:MouseEvent):void { var eventObject:Event = new Event("showPreview"); dispatchEvent(eventObject); }??
5.主应用程序中处理该事件
当事件在Choose中触发,分派到主应用程序,主应用程序就可以对其进行处理
<!--WizRtf2Html Charset=0 -->
<!--WizRtf2Html Charset=0 -->
<components:Choose id="chooseEmployee" employeeData="{employeeData}" x="30" y="90" showPreview="chooseEmployee_showPreviewHandler(event)"/> <components:Preview id="previewEmployeeOfTheMonth" title="Employee of the Month" x="250" y="90" width="250" visible="false"/>?
6.具体处理函数
//功能是打开previewEmployeeOfTheMonth 组件 protected function chooseEmployee_showPreviewHandler(event:Event):void { previewEmployeeOfTheMonth.visible = true; }?