Flex: Acessando MXML da classe
-
03-07-2019 - |
Pergunta
Eu tenho uma aula que instancie na criação completa:
public var catalog : AppCollection = new AppCollection (catalogStrip);
CatalogStrip é um hbox.
Nesta classe, crio um Vbox e a adiciono quando criança para catalogástrip. Aqui está o construtor da aula:
public function AppCollection (_container : HBox) {
this.container = _container;
}
E aqui está o código com o qual estou tendo problemas:
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);
}
Na última linha, diz que isso. Impossível! Eu adicionei no construtor! Além disso, também tentei instanciar o main.mxml e acessar o contêiner a partir daí. Quando tento o mesmo código de uma tag de script no main.mxml, ele funciona, mas isso mata o objetivo de ter a classe lá em primeiro lugar. Como posso acessar as tags mxml de uma classe externa? Eu tenho todas as minhas importações e tudo ...
Solução
public var catalog : AppCollection = new AppCollection (catalogStrip);
A parte da parte do script do main.mxml? Nesse caso, é a razão pela qual você está recebendo um objeto nulo. Você precisa ter um método:
public var catalog : AppCollection;
private function handleCreationComplete():void
{
this.catalog = new AppCollection(catalogStrip);
}