actionscript-3 - AS3 - 是否可以从代码的其他部分访问 Sprite 的子级?

标签 actionscript-3

我正在创建一个 Sprite ,附加一些图形和一个文本字段。然后我将 Sprite 返回到代码的另一部分。此时,是否可以通过父 Sprite 访问文本字段?

例如

private function foo():Sprite
{
  var mySprite:Sprite = new Sprite();
  mySprite.graphics.drawRect(0, 0, 200, 200);

  var tmpTextField:TextField = new TextField;
  tmpTextField.text = "SOME TEXT HERE";
  mySprite.addChild(tmpTextField); 

  return mySprite
}

现在我希望能够操作 mySprite 父级的 tmpTextField 子级,但是通过 mySprite 而不是直接通过 tmpTextField.

我是 AS3 的初学者,因此我们将不胜感激:)

最佳答案

解决这个问题的正确方法是使用OOP。创建一个扩展 Sprite 的类,并将 TextField 作为属性:

public class TextHolder extends Sprite
{

    private var _field:TextField;

    public function TextHolder()
    {
        graphics.drawRect(0, 0, 200, 200);

        _field = new TextField();
        addChild(_field);
    }

    public function get field():TextField{ return _field; }

}

然后更新您的代码:

private function foo():TextHolder
{
    var mySprite:TextHolder = new TextHolder();
    mySprite.field.text = "SOME TEXT HERE";


    return mySprite;
}

关于actionscript-3 - AS3 - 是否可以从代码的其他部分访问 Sprite 的子级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17352013/

相关文章:

mysql - 如何在flash(as3)中将mysql日期时间转换为客户端国家时间?

flash - 录制音频有效,播放方式太快

actionscript-3 - Flash赛车游戏物理

actionscript-3 - AS3驻波3程式库变更音高

actionscript-3 - AS3 worker 和大数据文件不可能?

ios - Action script 3.0 问题,我的 swf 无法卸载

actionscript-3 - Flex 中的标题窗口

actionscript-3 - 从 Flex 应用程序 (Web) 复制图像并将其粘贴到应用程序外部

flash - 录音开始时AS3的喀哒声

actionscript-3 - 如何在OSMF中加载ByteArray FLV?