0

我正在使用 Adob​​e Air(AS 文档类)开发一个 android 应用程序,并且我有一个函数,它从 SqlLite 数据库获取一个 SQLLite ResultSetb 作为字符串数组,遍历列表,为每次迭代创建一个 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”。

如果有人能帮助我指出正确的方向,我将不胜感激。

4

1 回答 1

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);
    }
}
于 2012-12-31T16:02:57.810 回答