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