日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flex this

發布時間:2024/9/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flex this 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了便于對比和敘述,我們先上一段最簡單的js+html代碼:
<input type="button" value="test" id="htmBtn" οnclick="alert(this.id)">
用慣js+html的程序員都知道,這里的this指向觸發事件的html組件本身,所以this.id將如愿顯示為”htmBtn”。

但是在flex3中,你寫事件偵聽函數時,this關鍵字將指向application,而不再指向觸發事件本身的組件上了(與js+html完全不同):

例如:

<mx:ComboBox name="ttt"? change="Alert.show('you have change the data!'+this.selectedLabel)">
<mx:dataProvider>
<mx:String>Dogs</mx:String>
<mx:String>Cats</mx:String>
<mx:String>Mice</mx:String>
</mx:dataProvider>
</mx:ComboBox>

中的this.selectedLabel將找不到任何東東。因為this并沒有指向這個combobox!!!

那么怎么找到觸發事件的組件呢?flex提供了event.currentTarget來指定觸發事件的當前組件,如下方式:

<mx:ComboBox name="ttt"? change="Alert.show('you have change the data!'+event.currentTarget.selectedLabel)">
<mx:dataProvider>
<mx:String>Dogs</mx:String>
<mx:String>Cats</mx:String>
<mx:String>Mice</mx:String>
</mx:dataProvider>
</mx:ComboBox>?
或者:<mx:Script><![CDATA[
private function changeEvt(e:Event):void {
Alert.show('you have change the data!'+e.currentTarget.selectedLabel)"
}
]]></mx:Script>

<mx:ComboBox name="ttt"? change="changeEvt(event)"><mx:dataProvider>
<mx:String>Dogs</mx:String>
<mx:String>Cats</mx:String>
<mx:String>Mice</mx:String>
</mx:dataProvider>
</mx:ComboBox>


官方文檔還提出了特別說明,使用event.currentTarget時有一個好習慣可以參考,即,最好先指定好該組件的類型,例如 TextInput(e.currentTarget),這樣做的目的是防止由于該組件某個屬性不存在時,編譯時不報錯而運行時才報錯,看代碼就明白了:

<?xml version="1.0"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script><![CDATA[

import mx.core.UIComponent;

private function tiHandler(e:Event):void {

/*?
這段代碼將會在運行時報錯,而編譯時不報錯。因為TextInput根本沒有tmesis屬性
e.currentTarget.tmesis = 4;
*/

/*
這段代碼的用法,就能在編譯時便發現錯誤,不用等到運行時才報錯
TextInput(e.currentTarget).tmesis = 4;
*/

}

]]></mx:Script>

<mx:TextInput id="ti1" click="tiHandler(event)"

text="This is some text. When you click on this control, the first three characters

are selected."/>

</mx:Application>

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Flex this的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。