0

我正在添加一个精灵数组,每个精灵都有一个关联的文本字段。

当精灵被点击(或文本字段——任何一个,虽然我希望光标是一只手)我想要做的就是抓取文本。(例如以下示例中的“一”)。

应该可以用点表示法,使用精灵的名字来做到这一点,但这不起作用。也就是说,Sprite_1.textField_1.text 不起作用。

当我单击精灵时,我可以添加一个事件侦听器,但目标是精灵,并且精灵对象不包含文本字段对象。

非常令人沮丧,应该很简单......有人知道怎么做吗?

for (var i : int = 0;i < 5; i++) 
{
 var myText:TextField = new TextField();
 myText.text = someText;
   //say "One" first time through, then "Two" second time thru, etc.  
 myText.name = "textField_" + i;
 mySprite.addEventListener(MouseEvent.CLICK, grabText); 

 var mySprite:Sprite = new Sprite();
 mySprite.graphics.lineStyle(2,0x000000);
 mySprite.graphics.beginFill(0xff0000, 1);
 mySprite.graphics.drawRect(0, 0, myText.width, myText.height);
 mySprite.graphics.endFill();
 mySprite.useHandCursor = true;
 mySprite.mouseChildren = false;
 mySprite.buttonMode = true;
 mySprite.name = "Sprite_" + i;
 mySprite.addEventListener(MouseEvent.CLICK, grabText);

谢谢!

4

1 回答 1

0

您还没有给出完整的代码,不清楚您是 addChilding textfield tomySprite还是mySpriteto this。假设您正在这样做,您可以使用getChildByName方法来访问它们(我宁愿将它们存储在数组中并从那里访问——但这可能需要大量的重新设计)。请注意,getChildByName返回匹配的第一个孩子,name因此在有多个同名孩子的情况下失败。

var sprite:Sprite = Sprite(this.getChildByName("Sprite_1"));
var tf:TextField = TextField(sprite.getChildByName("textField_1"));
tf.text = "some other text";
于 2009-10-28T13:51:26.767 回答