2012-12-31 40 views
0

我正在使用Adobe Air(AS Document類)處理Android應用程序,並且我有一個函數從SqlLite數據庫獲取SQLLite ResultSetb作爲字符串數組,迭代該列表爲每個迭代創建一個TextField,並將它們附加到舞臺上。在函數中使用EventListener訪問TextField值

當用戶點擊特定的TextField時,我希望它從數據庫中刪除。爲了捕獲事件,我在每個TextField上實現了TouchEvent偵聽器,但我無法弄清楚如何識別從事件偵聽器中點擊哪個TextField。

我的代碼是:

function displayNumbers(allNumbers:Array){ 
    var y:int=20; 
    var telNo:String; 
    for(var i:int=0; i<allNumbers.length; i++){ 
     telNo = allNumbers[i]; 
     var myText:TextField = new TextField(); 
     myText.text="text"+i;      
     myText.addEventListener(TouchEvent.TOUCH_TAP,doDelNo);     
     myText.x= 20; 
     myText.y=y; 
     stage.addChild(myText); 
     y+=25; 
    } 
} 

現在doDelNo EventListener的代碼如下:

function doDelNo(e:MouseEvent):void{     
    var telNo:String = myText.text; //This is where the problem is 
    delNo(telNo); 
} 

的問題是對函數 「doDelNo」 2行,因爲我似乎無法得到點擊TextField的哪個實例。 ActionScript甚至在第2行上拋出一個錯誤 - 「訪問未定義的屬性myText」。

如果有人能幫助我指出正確的方向,我將不勝感激。

回答

0
function doDelNo(e:MouseEvent):void{ 
    var currTextField:TextField = e.currentTarget as TextField; //This is how you get the TextField which was clicked 
    if (currTextField != null) { 
     var telNo:String = currTextField .text; 
     delNo(telNo); 
    } 
} 
+0

Thanks Majid。我也能夠使用 TextField(e.target) 來檢索點擊的TextField。 –