Цитата:
|
Сообщение от Флэш Потрошитель
Интересно, а как именно ты определяешь, добавляется в массив значение или нет?
|
Дебаггером смотрю
Вот конечный вариант

Код:
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;
то уже все будет хорошо?