Показать сообщение отдельно
Старый 13.02.2007, 19:43
Pablo4d вне форума Посмотреть профиль Отправить личное сообщение для Pablo4d Посетить домашнюю страницу Pablo4d Найти все сообщения от Pablo4d
  № 5  
Ответить с цитированием
Pablo4d
 
Аватар для Pablo4d

Регистрация: Feb 2006
Сообщений: 30
Отправить сообщение для Pablo4d с помощью ICQ
Цитата:
Сообщение от Флэш Потрошитель
Интересно, а как именно ты определяешь, добавляется в массив значение или нет?
Дебаггером смотрю

Вот конечный вариант
Код:
package control
{
	import mx.managers.PopUpManager;
	import mx.core.Application;
	import mx.containers.TitleWindow;
	import flash.display.DisplayObject;
	import mx.core.IFlexDisplayObject;
	
	public class SingleFormsController
	{
		private static var controller:SingleFormsController;
		
		public static var EVENT_EVENT_CODES_FORM_CLOSE:String="EVENT_EVENT_CODES_FORM_CLOSE";
		
		private var aForms:Array;
		
		public static function getInstance():SingleFormsController
		{
			if (controller==null)
			{
				controller=new SingleFormsController();
			}
			return controller
		}
		
		public function SingleFormsController()
		{
			if (controller != null)
			{
				throw new Error("Only SingleFormsController can exist.");
			}
			aForms=new Array();
		}
		
		public function openForm(__form:Class):void
		{
			if (isFormOpen(__form.formname))
			{
				return;
			}
			var form:IFlexDisplayObject=PopUpManager.createPopUp(DisplayObject(Application.application),__form,false);
			addForm(__form.formname,form);
		}
		
		public function addForm(__name:String,__form:Object):Boolean
		{
			if (isFormOpen(__name))	
			{
				return false;
			}
			aForms[__name]=__form;
			return true;
		}
		
		public function removeForm(__formname:String):Boolean
		{
			var form:IFlexDisplayObject=getFormByName(__formname)
			if (form)	
			{
				PopUpManager.removePopUp(form);
				delete aForms[__formname];
			}
			return false;
		}
		
		private function getFormByName(__formname:String):IFlexDisplayObject
		{
			return aForms[__formname];
		}
		
		public function isFormOpen(__name:String):Boolean
		{
			if (aForms[__name]!=null)
			{
				return true;
			}
			return false
		}
		
	}
}
Это текущий вариант если заменить
Код:
private var aForms:Array;
на
Код:
private var aForms:Dictionary;
то уже все будет хорошо?