В настоящее время я пытаюсь реализовать класс Singleton для хранения ArrayCollection элементов, к которым я затем могу обращаться и управлять ими на протяжении жизненного цикла моего приложения.Я создал приведенный ниже класс Singleton, предназначенный для хранения информации ArrayCollection:
package valueObjects
{
import mx.collections.ArrayCollection;
[Bindable]
public class Model
{
private static var instance:Model = new Model();
public var ids:ArrayCollection = new ArrayCollection();
public function Model()
{
if(instance)
{
trace("New instance cannot be created. Use Singleton.getInstance()");
}
}
public static function getInstance():Model
{
return instance;
}
}
}
Затем я создал следующий код на странице Main Deafult для своего приложения, так что ArrayCollection заполняется, как толькоприложение запущено:
import valueObjects.Model;
protected var models:Model = new Model();
private function loop():void
{
var index:int;
for( index = 0; index < compsCollection.length; index++ )
{
trace( "Element " + index + " is " + compsCollection[index].comp_id );
models.ids.addItem(compsCollection[index].comp_id);
trace(models.ids.length);
}
}
ArrayCollection в классе Singleton заполняется, поскольку оператор трассировки, который я ввел в цикл, четко показывает сборку данных в ArrayCollection.Однако затем, когда я перехожу к другому представлению в приложении, я затем пытаюсь получить доступ к этой коллекции ArrayCollection в классе Singleton со следующим кодом:
import valueObjects.Model;
protected var models:Model = Model.getInstance();
protected var test:ArrayCollection = new ArrayCollection();
protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
{
var index:int;
trace("Array Length =" + models.ids.length);
for( index = 0; index < models.ids.length; index++ )
{
trace( "Element " + index + " is " + models.ids[index].comp_id );
test.addItem(models.ids[index].comp_id);
}
testbox.text = test.toString();
}
Теперь проблема, с которой я сталкиваюсь, заключается в том, что при попытке получить доступ кArrayCollection (ids) по какой-то причине кажется пустым.Я включил оператор трассировки, который также говорит, что длина ArrayCollection равна «0».Может кто-нибудь, пожалуйста, помогите ??