兩種Flex彈出窗口用法指南
本文和大家重點(diǎn)討論一下兩種Flex彈出窗口的用法,主要包括最簡(jiǎn)單的警告窗口和常見(jiàn)Flex彈出窗口的用法,相信通過(guò)本文的介紹你對(duì)Flex彈出窗口的用法會(huì)有一定的了解。
兩種Flex彈出窗口
1.最簡(jiǎn)單的警告窗口
你需要先導(dǎo)入Alert類(lèi):importmx.controls.Alert;
然后在想要彈出警告的時(shí)候使用:
Alert.show(“你確定要退出系統(tǒng)嗎?”,“確認(rèn)”,Alert.YES|Alert.NO,null,logout)
參數(shù)說(shuō)明:第一個(gè)參數(shù)是要顯示的文本,第二個(gè)參數(shù)是窗口的標(biāo)題,這兩個(gè)參數(shù)是最經(jīng)常用的。第三個(gè)參數(shù)是按鈕,默認(rèn)是兩個(gè):YEW和NO,當(dāng)然你也可以自定義,比如Alert.CANCEL,第四個(gè)參數(shù)是父窗口,默認(rèn)為null。第五個(gè)參數(shù)是窗口關(guān)閉后調(diào)用的函數(shù)名,如果你想要在點(diǎn)擊確定之后觸發(fā)什么事件,就需要定義這個(gè)參數(shù)。這里我要調(diào)用logout,請(qǐng)注意,不要在這里寫(xiě)logout()。(沒(méi)有括號(hào))logout函數(shù)如下:
- privatefunctionlogout(event:CloseEvent):void
- {
- if(event.detail==Alert.YES)
- {
- //具體操作
- }
- }
因?yàn)檫@個(gè)函數(shù)是觸發(fā)的,所以參數(shù)是一個(gè)CloseEvent。“event.detail==Alert.YES”這行代碼判斷點(diǎn)擊的是不是確定按鈕。CloseEvent中的detail屬性專(zhuān)門(mén)判斷點(diǎn)擊了哪個(gè)按鈕,這樣就可以用戶(hù)的點(diǎn)擊控制代碼。
簡(jiǎn)單的Alert用法就是這樣,更多相關(guān)信息請(qǐng)看幫助文檔。
2.Flex彈出窗口
這個(gè)就比較強(qiáng)大了,需要使用一個(gè)類(lèi),那就是PopUpManager,同樣,使用前你需要先導(dǎo)入:
- importmx.managers.PopUpManager;
然后你就要?jiǎng)?chuàng)建一個(gè)Compoment作為Flex彈出窗口,這個(gè)沒(méi)什么特別的,創(chuàng)建一個(gè)普通的Compoment就行,這里我創(chuàng)建了一個(gè)文件叫做PopWindow,就是一個(gè)簡(jiǎn)單的Canvas,里面就放一個(gè)圖片。代碼如下:
PopWindow.mxml:
- <?xmlversionxmlversionxmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Canvasxmlns:mxmx:Canvasxmlns:mxmx:Canvasxmlns:mxmx:Canvasxmlns:mx="http://www.adobe.com/2006/mxml"
- width="100"height="100"> width="100"height="100">
- <mx:Script>
- <![CDATA[
- importmx.managers.PopUpManager;
- ]]> importmx.managers.PopUpManager;
- ]]>
- </mx:Script>
- <mx:Imagexmx:Imagexmx:Imagexmx:Imagex="0"y="0"source="assets/face.PNG"
- click="PopUpManager.removePopUp(this)"width="90"height="82"/> click="PopUpManager.removePopUp(this)"width="90"height="82"/>
- </mx:Canvas>
其中removePopUp是PopUpManager的一個(gè)方法,就是移除當(dāng)前彈出的窗口,這里我設(shè)置了點(diǎn)擊圖片的時(shí)候就移除Flex彈出窗口。接下來(lái)我們?cè)谥鞒绦蛑袆?chuàng)建并Flex彈出窗口:
- varpop:PopWindow=PopWindow(PopUpManager.
- createPopUp(this,PopWindow,true));
這就完成了,這個(gè)pop是一個(gè)PopWindow(就是剛才創(chuàng)建的Component的文件名)類(lèi)型的變量,由于PopUpManager的createPopUp返回的是一個(gè)IFlexDisplayObject,你需要將其強(qiáng)制轉(zhuǎn)換成為PopWindow類(lèi)型才能賦值給pop變量。
◆下面詳細(xì)說(shuō)明一下createPopUp的這幾個(gè)參數(shù):
第一個(gè)參數(shù)是Flex彈出窗口的父窗體,這個(gè)相信大家都明白。
第二個(gè)參數(shù)是Flex彈出窗口的類(lèi)名,也就是組件的文件名,在Flex中一個(gè)MXML文件也對(duì)應(yīng)一個(gè)類(lèi)。PopUpManager是根據(jù)這個(gè)類(lèi)來(lái)創(chuàng)建彈出對(duì)話框。
第三個(gè)參數(shù)是模態(tài)標(biāo)記。如果是true,就創(chuàng)建一個(gè)模態(tài)對(duì)話框;否則創(chuàng)建的就是一個(gè)非模態(tài)的對(duì)話框。
PopUpManager還有一個(gè)參數(shù),不過(guò)不常用,具體請(qǐng)參考幫助文檔。
然后你就可以對(duì)彈出對(duì)話框操作了,想要移除就用removePopUp(pop)。另外,如果是非模態(tài)的,可能在點(diǎn)擊程序其它部分的時(shí)候窗口就不見(jiàn)了,但是它并沒(méi)有移除,怎么讓它出來(lái)呢?這個(gè)時(shí)候就需要PopUpManager的另外一個(gè)方法:bringToFront(),這個(gè)方法可以把窗口放到最前。你可以控制,讓程序第一次的時(shí)候是創(chuàng)建對(duì)話框,以后就是把窗口放到最前。
【編輯推薦】
- 詳盡解讀Flex彈出窗口用法
- 兩種Flex彈出窗口用法解析
- 全面認(rèn)識(shí)Flex應(yīng)用程序的六大元素
- 揭開(kāi)Flex正則表達(dá)式的神秘面紗
- Flex彈出窗口實(shí)現(xiàn)和子父Flex窗口的數(shù)據(jù)交換揭秘