Показать сообщение отдельно
Старый 08.07.2008, 16:32
Alexander Balaganov вне форума Посмотреть профиль Отправить личное сообщение для Alexander Balaganov Найти все сообщения от Alexander Balaganov
  № 1  
Ответить с цитированием
Alexander Balaganov

Регистрация: Jul 2008
Сообщений: 15
По умолчанию Реализация шаблона singleton в AS3

Посмотрите пожалуйста код. Вы используйте в своем коде шаблон "одиночка" или делаете это как-то подругому?

т.е. это объект, который (по-хорошему) может быть интсанциирован только один раз через метод getInstance()

Код:
public class RegistrationManagerProxy {

		static var registrationManager:RegistrationManagerProxy = null;

		var registrationManagerConnection:NetConnection=null;

		private function RegistrationManagerProxy() {
			registrationManagerConnection = new NetConnection();
			registrationManagerConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
			registrationManagerConnection.connect("rtmp://localhost/registration_manager");
		}
		public static function getInstance():RegistrationManagerProxy {
			if (registrationManager==null) {
				registrationManager = new RegistrationManagerProxy();
			}
			return registrationManager;
		}
		public function registerAbonent(abonent:Object) {
			trace("registerAbonent...");
			trace("E-mail: "+ emailTextInput.text);
		}
		public function netStatusHandler(event:NetStatusEvent):void {
			trace("connected is: " + netConnection.connected );
			trace("event.info.level: " + event.info.level);
			trace("event.info.code: " + event.info.code);

			switch (event.info.code) {
				case "NetConnection.Connect.Success" :
					trace("Congratulations! you're connected");
					break;
				case "NetConnection.Connect.Rejected" :
					trace("Connection rejected by server :(");
					break;
				case "NetConnection.Connect.Failed" :
					trace("Oops! you weren't able to connect");
					break;
				case "NetStream.Play.Stop" :
					trace("The stream has finished playing");
					break;
				case "NetStream.Play.StreamNotFound" :
					trace("The server could not find the stream you specified");
					break;
				case "NetStream.Publish.BadName" :
					trace("The stream name is already used");
					break;
				case "NetStream.Publish.Start" :
					trace("publish starting...");
					break;
				case "NetStream.Play.Start" :
					trace("play starting...");
					break;
			}
		}
	}