Flex中如何判斷是否在組件之外單擊
更新時(shí)間:2014年05月07日 17:37:41 作者:
這篇文章主要介紹了在Flex中判斷是否在組件之外單擊的技巧,需要的朋友可以參考下
昨天在做Flex開發(fā)的時(shí)候,遇到了這樣一種操作,之前也遇到過,那時(shí)的辦法不是很好,今天又碰上了類似的問題,先看一張圖吧!
這是系統(tǒng)界面大概的樣子,現(xiàn)在的情況是,紅色區(qū)域是一個(gè)窗口、頁(yè)面、組件這樣的,需要在這個(gè)組件之外的地方單擊就隱藏這個(gè)組件,以前的想法很簡(jiǎn)單,就是通過坐標(biāo)判斷,但是現(xiàn)在這個(gè)紅色的區(qū)域的結(jié)構(gòu)比較復(fù)雜,所以不知道有什么樣的方式可以解決,后來(lái)遇到了一個(gè)網(wǎng)友,給了我一段代碼,我覺得還不錯(cuò),我覺得算是技巧性的東西吧!所以分享一下:
首先,在黑色的區(qū)域監(jiān)聽單擊事件,然后在單擊事件的處理函數(shù)中通過contains方法判斷。代碼如下所示:
public functionclickHandler(event:MouseEvent):void
{
if(!紅色區(qū)域.contains(event.target asDisplayObject) && !綠色區(qū)域.contains(event.target as DisplayObject))
{
紅色區(qū)域.visible = false;
}
}
這段代碼,我認(rèn)為還是比較一種好的解決方案。最開始的想法是通過坐標(biāo)來(lái)判斷,然后又冒出了一個(gè)想法就是在紅色區(qū)域上監(jiān)聽鼠標(biāo)離開,在離開的處理函數(shù)中監(jiān)聽單擊的事件,但是這種方法好像不好使。于是問了一下網(wǎng)友,就知道了這種方法。
這里還有一個(gè)小插曲:我的qq頭像是路飛的,很巧合的是幫助我解決問題的是一個(gè)索隆頭像的網(wǎng)友,解決完問題之后,他還叫了我一聲船長(zhǎng),很有趣啊!
這是系統(tǒng)界面大概的樣子,現(xiàn)在的情況是,紅色區(qū)域是一個(gè)窗口、頁(yè)面、組件這樣的,需要在這個(gè)組件之外的地方單擊就隱藏這個(gè)組件,以前的想法很簡(jiǎn)單,就是通過坐標(biāo)判斷,但是現(xiàn)在這個(gè)紅色的區(qū)域的結(jié)構(gòu)比較復(fù)雜,所以不知道有什么樣的方式可以解決,后來(lái)遇到了一個(gè)網(wǎng)友,給了我一段代碼,我覺得還不錯(cuò),我覺得算是技巧性的東西吧!所以分享一下:
首先,在黑色的區(qū)域監(jiān)聽單擊事件,然后在單擊事件的處理函數(shù)中通過contains方法判斷。代碼如下所示:
復(fù)制代碼 代碼如下:
public functionclickHandler(event:MouseEvent):void
{
if(!紅色區(qū)域.contains(event.target asDisplayObject) && !綠色區(qū)域.contains(event.target as DisplayObject))
{
紅色區(qū)域.visible = false;
}
}
這段代碼,我認(rèn)為還是比較一種好的解決方案。最開始的想法是通過坐標(biāo)來(lái)判斷,然后又冒出了一個(gè)想法就是在紅色區(qū)域上監(jiān)聽鼠標(biāo)離開,在離開的處理函數(shù)中監(jiān)聽單擊的事件,但是這種方法好像不好使。于是問了一下網(wǎng)友,就知道了這種方法。
這里還有一個(gè)小插曲:我的qq頭像是路飛的,很巧合的是幫助我解決問題的是一個(gè)索隆頭像的網(wǎng)友,解決完問題之后,他還叫了我一聲船長(zhǎng),很有趣啊!
相關(guān)文章
flex4.5中CSS選擇器的應(yīng)用小結(jié)
與HTML相似,F(xiàn)lex允許在MXML標(biāo)簽中通過CSS樣式來(lái)設(shè)置組件的外觀。到flex4.5后已經(jīng)基本上支持了HTML中的所有CSS的應(yīng)用方式,這里主要來(lái)列舉下flex4.5中CSS選擇器的使用方法2013-04-04
Flex調(diào)Javascript打開新窗口示例代碼
Flex通過調(diào)用Javascript打開全屏的新窗口新窗口示例代碼 ,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
Flex中在Tree綁定數(shù)據(jù)后自動(dòng)展開樹節(jié)點(diǎn)的方法
使用Tree組件在綁定數(shù)據(jù)后自動(dòng)展開所有樹型節(jié)點(diǎn)(不需要用戶再自己點(diǎn)擊展開節(jié)點(diǎn),會(huì)方 便許多),接下來(lái)為大家介紹下具體的實(shí)現(xiàn)2014-01-01
flex通過java后臺(tái)獲取ip和pcname示例代碼
這篇文章主要介紹了flex通過java后臺(tái)獲取ip和pcname的具體實(shí)現(xiàn),需要的朋友可以參考下2014-05-05
ie9下關(guān)閉彈出窗口出現(xiàn)__flash__removeCallback未定義錯(cuò)誤
在關(guān)閉彈出窗口時(shí),出現(xiàn)__flash__removeCallback未定義錯(cuò)誤。而且是關(guān)了又出現(xiàn),關(guān)于這個(gè)問題的解決方法如下2014-09-09
Flex中對(duì)表格某列的值進(jìn)行數(shù)字格式化并求百分比添加%
需要對(duì)表格中某列的數(shù)值進(jìn)行格式化,對(duì)該數(shù)值乘以100,并保留兩位小數(shù),添加“%”下面同實(shí)例來(lái)實(shí)現(xiàn)下2014-10-10
FLEX給頁(yè)面添加滾動(dòng)條實(shí)現(xiàn)思路及代碼
給頁(yè)面添加滾動(dòng)條的方法有很多,使用js獲取瀏覽器窗口的寬高,根據(jù)瀏覽器窗口寬高修改樣式,讓滾動(dòng)條出現(xiàn),具體的實(shí)現(xiàn)如下,需要的朋友可以參考下2013-11-11

