2009-05-03 10 views
0

나는 생성시에 인스턴스화하는 클래스를 가지고있다 :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 태그에 액세스하려면 어떻게해야합니까? 나는 모든 수입품과 모든 것을 가지고있다 ...

답변

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

main.mxml의 스크립트 부분에 있는가? 그렇다면, 그것은 당신이 null 객체를 얻는 이유입니다. 방법이 필요합니다.

public var catalog : AppCollection; 

private function handleCreationComplete():void 
{ 
    this.catalog = new AppCollection(catalogStrip); 
} 
관련 문제