在flex中一个as类里dispatch了一个事件,主程序中无法接受,是咋回事?怎么修改

在flex中一个as类里dispatch了一个事件,主程序中无法接受,是怎么回事?如何修改?
一个as类中,当数据处理完毕后发送一个finish的事件,然后希望在主程序applicatioin中监听并接受到这个事件,进行后续处理,源代码大致如下:

Network.as:

package control
{
import flash.events.Event;
import flash.events.EventDispatcher;
[Event(name="finish", type="flash.events.Event")]
public class Network extends EventDispatcher
{
public function Process():void
{
....
DispatchFinishEvent();
}
public function DispatchFinishEvent():void
{
var e:Event = new Event("finish");
var ret:Boolean = this.dispatchEvent(e);
trace(ret);
}
}
}

Main.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import control.Network;
public function initApp():void
{
addEventListener("finish", showAll);
var testNetwork:Network = new Network();
testNetwork.Process();
}
public function showAll():void
{
trace("success receive");
}

]]>
</mx:Script>

</mx:Application>

可以看到,DispatchFinishEvent()函数是运行了的,但是无论如何都不能接收到finish事件,showAll函数进不去,试图在Application标签里放入finish="showAll()",会报错显示无法找到finish这个属性,这是怎么回事?帮我看看,多谢了!

------解决方案--------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
minWidth="1024"
minHeight="768">
<mx:Script>
<![CDATA[
import control.Network;
import mx.controls.Alert;

// private var testNetwork:Network=new Network();

public function initApp():void
{
var testNetwork:Network=new Network();
testNetwork.addEventListener("finish", showAll); testNetwork.Process();

}

public function showAll(event:Event):void
{
Alert.show("success receive");

}
]]>
</mx:Script>
<mx:Button x="207"
id="btn"
y="196"
label="Button"
click="initApp()"/>



</mx:Application>




package control
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;

[Event(name="finish", type="flash.events.Event")]
public class Network extends EventDispatcher
{
public function Process():void
{

this.dispatchEvent(new Event("finish"));
}

}
}