質問

作成完了時にインスタンス化するクラスがあります:

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タグにアクセスするにはどうすればよいですか?私はすべてのインポートとすべてを持っています...

役に立ちましたか?

解決

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

main.mxmlのスクリプト部分にありますか?もしそうなら、それはあなたがnullオブジェクトを取得している理由です。メソッドが必要です:

public var catalog : AppCollection;

private function handleCreationComplete():void
{
    this.catalog = new AppCollection(catalogStrip);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top