//=================Client.as ==============
package callback{
import flash.display.Sprite;
public class Client extends Sprite{
public function Client() {
//调用Seriver类的callFun方法,并把clientFun方法传给callFun方法
var server : Server = new Server();
server.callFun(clientFun);
}
//定义一个回调方法让Server中的callFun来调用
public function clientFun() : void{
trace("I am a callback function defiend by Client");
}
}
}
//===================Server.as==============
package callback{
import flash.display.Sprite;
import flash.utils.setTimeout;
public class Server extends Sprite{
public function Server() {
super();
}
//接收Client类传入的方法
public function callFun(arg : Function) : void{
trace("I am a server method.....");
//先做一些事情
setTimeout(showMsg, 1000);
//调用Client类传过来的方法
setTimeout(arg, 3000);
}
private function showMsg() : void{
trace("do some stuff on server..........");
}
}
}