2012-12-31 39 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。 –