Flex中如何判斷是否在組件之外單擊

這是系統(tǒng)界面大概的樣子,現(xiàn)在的情況是,紅色區(qū)域是一個(gè)窗口、頁(yè)面、組件這樣的,需要在這個(gè)組件之外的地方單擊就隱藏這個(gè)組件,以前的想法很簡(jiǎn)單,就是通過(guò)坐標(biāo)判斷,但是現(xiàn)在這個(gè)紅色的區(qū)域的結(jié)構(gòu)比較復(fù)雜,所以不知道有什么樣的方式可以解決,后來(lái)遇到了一個(gè)網(wǎng)友,給了我一段代碼,我覺(jué)得還不錯(cuò),我覺(jué)得算是技巧性的東西吧!所以分享一下:
首先,在黑色的區(qū)域監(jiān)聽單擊事件,然后在單擊事件的處理函數(shù)中通過(guò)contains方法判斷。代碼如下所示:
public functionclickHandler(event:MouseEvent):void
{
if(!紅色區(qū)域.contains(event.target asDisplayObject) && !綠色區(qū)域.contains(event.target as DisplayObject))
{
紅色區(qū)域.visible = false;
}
}
這段代碼,我認(rèn)為還是比較一種好的解決方案。最開始的想法是通過(guò)坐標(biāo)來(lái)判斷,然后又冒出了一個(gè)想法就是在紅色區(qū)域上監(jiān)聽鼠標(biāo)離開,在離開的處理函數(shù)中監(jiān)聽單擊的事件,但是這種方法好像不好使。于是問(wèn)了一下網(wǎng)友,就知道了這種方法。
這里還有一個(gè)小插曲:我的qq頭像是路飛的,很巧合的是幫助我解決問(wèn)題的是一個(gè)索隆頭像的網(wǎng)友,解決完問(wèn)題之后,他還叫了我一聲船長(zhǎng),很有趣啊!
相關(guān)文章
flex中使用css樣式修改TextArea滾動(dòng)條的皮膚代碼
使用css樣式修改TextArea滾動(dòng)條的皮膚,具體示例代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08Flex字體加粗問(wèn)題只能對(duì)英文的字體加粗
在flex中對(duì)label進(jìn)行字體加粗的時(shí)候,只能對(duì)英文的字體加粗,而中文的就不可以加粗,解決方法如下,希望對(duì)大家有所幫助2014-01-01flex內(nèi)嵌html網(wǎng)頁(yè)示例代碼
這篇文章主要介紹了flex如何內(nèi)嵌html網(wǎng)頁(yè),需要的朋友可以參考下2014-05-05flex打印操作(FlexPrintJob)還有分頁(yè)打印操作具體實(shí)現(xiàn)
如果要使用分頁(yè)效果,則必須使用標(biāo)簽"PrintAdvancedDataGrid"(Flex3中的標(biāo)簽)才能夠?qū)崿F(xiàn)分頁(yè)效果,感興趣的朋友可以參考下2013-04-04Flex中通過(guò)RadioButton進(jìn)行切換示例代碼
這篇文章主要介紹了Flex中通過(guò)RadioButton進(jìn)行切換示例代碼,需要的朋友可以參考下2014-02-02Flex 錯(cuò)誤(mx.messaging.messages::RemotingMessage)分析
有時(shí)我們?cè)谧鲰?xiàng)目的時(shí)候會(huì)遇到Flex 錯(cuò)誤提示mx.messaging.messages::RemotingMessage,那么產(chǎn)生這個(gè)錯(cuò)誤的原因是什么呢,今天我們來(lái)分析下2014-06-06Flex Label控件豎排顯示文字的實(shí)現(xiàn)代碼
Label控件豎排顯示文字一般都是橫排的,接下來(lái)為大家分享個(gè)方法讓它變成豎排,感興趣的童鞋們可以學(xué)習(xí)下,希望對(duì)你有所幫助2013-04-04Flex設(shè)置LinkButton的背景色有思路有源碼
Flex中沒(méi)有設(shè)置LinkButton的背景色的屬性,可以直接通過(guò)調(diào)用樣式方法畫出LinkButton的背景色2014-08-08flash 報(bào)錯(cuò)捕獲(Catch All Exception in Flash)
就是在全局任何地方產(chǎn)生的錯(cuò)誤如果沒(méi)有被捕獲,都可以在捕獲階段和冒泡階段被捕獲,接下來(lái)為大家介紹一種可以捕捉所有錯(cuò)誤的方法,感興趣的你可不要錯(cuò)過(guò)了哈2013-03-03