<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" xmlns:components="com.antiy.components.*"> <mx:Script> <![CDATA[ private function alarmHandler(event:Event):void{ if (preventToggle.selected){ event.preventDefault(); trace("We prevent default event") }else{ trace("We didn't prevent default event "); } } ]]> </mx:Script> <mx:Button label="触发事件" click="myComp.triggerAlarm()"/> <mx:CheckBox id="preventToggle" label="阻止默认事件?" selected="true"/> <components:TestComponent id="myComp" alarm='alarmHandler(event)'/> </mx:Application>
package com.antiy.components{ import flash.events.Event; import mx.controls.Alert; import mx.core.EventPriority; import mx.core.UIComponent; [Event(name='alarm', type='flash.events.Event')] public class TestComponent extends UIComponent{ public function TestComponent(){ super(); addEventListener('alarm',alarmHandler,false,EventPriority.DEFAULT_HANDLER); } protected function alarmHandler(event:Event):void{ if (!event.isDefaultPrevented()){ Alert.show('默认事件没有被取消!'); } } public function triggerAlarm():void{ dispatchEvent(new Event('alarm',false,true)); } } }