Использовать Global ArrayCollection в мобильном приложении Flash Builder? - PullRequest
0 голосов
/ 27 августа 2011

В настоящее время я занимаюсь разработкой мобильного приложения с использованием последней версии 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 doc пакета по умолчанию, который будет загружен первым при запуске приложения с помощью:

import valueObjects.Model;

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

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

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

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

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

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

var myModel : Model = new Model();

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

0 голосов
/ 23 ноября 2011

Или проще всего сделать массив статическим.

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

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

...