2011-02-23 47 views
0

我正在創建一個AIR應用程序,mainapp.mxml有一個按鈕和VBOX。當點擊按鈕時,應該在VBOX中顯示child.mxml。從AS代碼調用一個MXML

如果代碼也是flex的,我們將不勝感激,因爲這對我來說很容易修改標籤。

任何人都可以幫助我請怎麼做!在此先感謝

回答

1

添加一個單擊處理程序的按鈕,在該處理程序創建子的一個實例,並將其添加到垂直框中:

<mx:Button id="myButton" label="My Button" click="myButton_clickHandler(event)"/> 

而且處理程序:

function myButton_clickHandler(event:Event):void { 
    var child:Child = new Child(); 
    myVBox.addChild(child); 
} 
+0

它的工作表示感謝。但是,當我執行代碼ArgumentError時出現一個小警告:錯誤#2025:提供的DisplayObject必須是調用者的子項。 \t at flash.display :: DisplayObjectContainer/getChildIndex() \t at mx.managers :: SystemManager/getChildIndex()[E:\ dev \ 4.x \ frameworks \ projects \ framework \ src \ mx \ managers \ SystemManager。如:1665] \t at mx.managers.systemClasses :: ActiveWindowManager/mouseDownHandler()[E:\ dev \ 4.x \ frameworks \ projects \ framework \ src \ mx \ managers \ systemClasses \ ActiveWindowManager.as:471] – anu 2011-02-25 21:15:32

0

如果您使用Flex 4,你也可以使用states來處理這個問題。該按鈕只會改變狀態,並且垂直框將被納入任何一個國家你設置:

<fx:Script> 
<![CDATA[ 
    private function changeState():void { 
     currentState = (currentState == "default") ? "showVBox" : "default"; 
    } 
]]> 
</fx:Script> 
<s:states> 
    <s:State name="default" /> 
    <s:State name="showVBox" /> 
</s:states> 

<mx:VBox id="myVBox" includeIn="showVBox" /> 
<mx:Button label="Show/Hide VBox" click="changeState()" /> 

在我的例子,點擊按鈕簡單地交換「默認」和「showVBox」之間的狀態。這使得玩家可以爲你添加/刪除VBox,而不用擔心你自己做。

免責聲明:我沒有測試上面的代碼,這樣的命名空間可以被關閉:)