Flex里使用PopUpManager.createPopUp(parent, class, modal [, initobj, outsideEvents])創建父一個子窗口,該函數的參數說明如下:
parent 一個引用,引用彈出窗口所在的窗口。
class 一個引用,引用要創建的對象的類。
modal 一個布爾值,它表明該窗口是 (true) 否 (false) 是模式的。
initobj? 一個包含初始化屬性的對象。此參數是可選的。
outsideEvents? 一個布爾值,指明在用戶單擊窗口以外的區域時是 (true) 否 (false) 觸發事件。此參數是可選的。
其中,前三個參數是必須的,后兩個是可選的。第二個參數要和你的mxml文件名一致,第三個參數如果選擇是則不允許彈出窗口沒關閉前操作父窗口,反之則允許。
首先我們創建一個頁面,關鍵代碼如下:
<mx:Button label="Show Window" click="showWindow(false)" width="150"/>
<mx:Button label="Show Modal Window" click="showWindow(true)" width="150"/>
function showWindow(modal)
{
??? var popup = mx.managers.PopUpManager.createPopUp(_root , login , modal, {deferred: true});
}
然后我們創建一個TitleWindow,注意雖然也是mxml文件,但是它的定級元素不是Application而是TitleWindow,其余的地方和以前沒什么兩樣了。
下面介紹子父窗口的數據交換。
當子窗口被創建的時候父窗口就獲得了一個子窗口的實例,注意我用紅子標出的變量。我們可以用該變量引用子窗口內定義的全局變量,例如我在子窗口中做如下定義:var name:String = "哈哈";。在父窗口中可以使用popup.name引用該變量。
同樣,在子窗口中我們可以使用"parent"來引用父窗口中定義的變量,例如我在父窗口中定義var age:String="24";。在子窗口中可以使用parent.age引用這個變量。