我是一個完整的Flex/Flash noob,運行Adobe Flash Builder 4 Beta 2.我有一個主要組件,需要能夠調用幾個彈出窗口,每個彈出窗口大多都相同,除了一個函數和幾個標籤。顯然,我更喜歡能夠定義這個函數,並在調用彈出窗口時更改這些標籤,而不是使用幾乎相同的代碼來創建大量的.mxml文件,我只是不知道該怎麼做。我想出瞭如何改變標籤,但不知道如何重新定義這個功能。Flex - 如何在另一個組件中定義一個功能?
爲簡單起見,假設我的代碼如下所示:
main.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" :s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
protected function init():void
{
var alertWindow:IFlexDisplayObject = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, popup, true);
PopUpManager.centerPopUp(alertWindow);
var popInstance:transmitRoundPop = alertWindow as transmitRoundPop;
popInstance.btnTest.label = "NEW";
}
]]>
</fx:Script>
</mx:Module>
popup.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" width="400" height="300" xmlns:flash="services.flash.*">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.managers.PopUpManager;
public function test():void
{
Alert.show("ORIGINAL");
PopUpManager.removePopUp(this);
}
]]>
</fx:Script>
<s:Panel x="10" y="10" width="380" height="280" title="Test" id="pnlTest">
<s:Button x="131" y="104" label="OLD" id="btnTest" click="test()"/>
</s:Panel>
</s:Group>
現在說我要改變test()
在在main.mxml中調用它時popup.mxml ......我該怎麼做?請包括詳細信息...請記住我是一個菜鳥:-)
你是什麼改變測試意味着()?改變它的代碼?參數? – CookieOfFortune 2010-02-01 17:45:30
對不起,沒有想好。我想更改其中的代碼,或者更準確地覆蓋/覆蓋/重新定義該函數,但我認爲我現在已經找到了正確的方法。 – Travesty3 2010-02-01 17:59:26