Flex: доступ к MXML из класса

У меня есть класс, который я создаю при завершении создания:

public var catalog : AppCollection = new AppCollection (catalogStrip);

CatalogStrip - это HBox.

В этом классе я создаю VBox и добавляю его в качестве дочернего элемента в catalogStrip. Вот конструктор для указанного класса:

public function AppCollection (_container : HBox) {
    this.container = _container;
}

И вот код, с которым у меня проблемы:

public function populate (e : ResultEvent) : void {
    var appImage : Image = new Image ();
    var appText : Text = new Text ();
    var appContainer : VBox = new VBox ();

    appImage.source = "./res/Halo.png";
    appImage.width = 70;
    appImage.height = 70;

    appText.text = "Halo 4";

    appContainer.width = 110;
    appContainer.height = 125;
    appContainer.addChild (appImage);
    appContainer.addChild (appText);

    tbox = appContainer;

    this.container.addChild (appContainer);
}

В последней строке указано, что this.container имеет значение null. Невозможно! Я добавил это в конструктор! Кроме того, я также попытался создать экземпляр main.mxml и получить оттуда доступ к контейнеру. Когда я пробую тот же код из тега скрипта в main.mxml, он работает, но это убивает весь смысл наличия класса там в первую очередь. Как я могу получить доступ к тегам MXML из внешнего класса? У меня весь импорт и все такое ...


person Aethex    schedule 03.05.2009    source источник


Ответы (1)


public var catalog : AppCollection = new AppCollection (catalogStrip);

Находится ли в сценарии часть main.mxml? Если да, то это причина, по которой вы получаете нулевой объект. Вам нужен метод:

public var catalog : AppCollection;

private function handleCreationComplete():void
{
    this.catalog = new AppCollection(catalogStrip);
}
person Joel Hooks    schedule 03.05.2009