package {
import flash.events.EventDispatcher;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
public class M extends EventDispatcher {
private static var _instance:M; //必须是静态的引用
public static const DATATYPE_FLV:String="datatype_flv";//派发事件名
public static const DATATYPE_SWF:String="datatype_swf";
public function M(singletonEnforcer:SingletonEnforcer) {
//防止 通过var single:Singleton = new Singleton(null)重复实例化类
if (! singletonEnforcer) {
throw new Error("单例模式:请使用getInstance()来获取实例");
}
}
public static function getInstance():M {
if (_instance == null) {
_instance=new M(new SingletonEnforcer()); //包外类 实现单例
_instance.init();
}
return _instance;
}
private function init():void {
//_videoConnection = new NetConnection();
//_videoConnection.connect(null);
//_videoStream = new NetStream(_videoConnection);
//_videoStream.play("test.flv");
//trace(_videoStream);
}
}
}
//包外类 实现单例
class SingletonEnforcer{};
as3单例模式实现
最新推荐文章于 2015-09-08 17:41:00 发布