0

我有一个在创建完成时实例化的类:

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 为空。不可能的!我在构造函数中添加了它!此外,我还尝试实例化 main.mxml 并从那里访问容器。当我从 main.mxml 中的脚本标记尝试相同的代码时,它可以工作,但这首先扼杀了将类放在那里的全部意义。如何从外部类访问 MXML 标记?我有我所有的进口和一切......

4

1 回答 1

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

是否在 main.mxml 的脚本部分中?如果是这样,这就是您获得空对象的原因。你需要有一个方法:

public var catalog : AppCollection;

private function handleCreationComplete():void
{
    this.catalog = new AppCollection(catalogStrip);
}
于 2009-05-03T02:07:32.770 回答