Использовать Global ArrayCollection в мобильном приложении Flash Builder?

В настоящее время я разрабатываю мобильное приложение с использованием последней версии Flash Builder, и мне нужно создать Global ArrayCollection для хранения информации, извлеченной из локальной базы данных. Я могу получить данные из БД в порядке, но я не могу получить доступ к глобальной переменной, когда пытаюсь. У меня есть следующий файл .as с именем «Model.as», который находится в папке с именем valueObjects, и этот файл содержит следующий код:

package valueObjects
{
    import flash.data.SQLConnection;

    import mx.collections.ArrayCollection;

    public class Model
    {
        public var ids:ArrayCollection = new ArrayCollection();

        public function Model()
        {
        }
    }
}

Теперь я хочу начать заполнять этот ArrayCollection информацией из базы данных, поэтому я импортирую класс в документ mxml пакета по умолчанию, который будет загружен первым при запуске приложения с помощью:

import valueObjects.Model;

Затем в частной функции я пытаюсь получить доступ к ids ArrayCollection и заполнить ее, но получаю следующую ошибку:

-1120: Access of undefined property ids.
-Access of undefined property ids

Может ли кто-нибудь помочь с этим ?? Спасибо


person user723858    schedule 27.08.2011    source источник


Ответы (2)


Или самый простой способ сделать массив статическим.

public static var ids:ArrayCollection = new ArrayCollection();

но для этого случая Singleton намного лучше.

person user648399    schedule 23.11.2011

Вы создали экземпляр класса Model?

В классах, к которым вы хотите получить доступ, вы должны сделать что-то вроде этого:

var myModel : Model = new Model();

Чтобы разделить экземпляр модели между классами, вам придется проделать немного больше работы. Либо передавая ссылку на тот же объект, либо используя альтернативный метод, например создание Singleton. Многие фреймворки Flex, такие как Cairngorm или RobotLegs, используют синглтоны, если вам нужен пример.

person JeffryHouser    schedule 27.08.2011
comment
Привет, да, у меня есть это, которое создает экземпляр модели: protected var model:Model = new Model(); - person user723858; 28.08.2011