Flash/AS3:访问中间时间线框架上的DisplayObject实例

Flash/AS3:访问中间时间线框架上的DisplayObject实例,flash,actionscript-3,timeline,Flash,Actionscript 3,Timeline,我有一个动态文本字段,在FlashCS4的中间时间线框架上有一个实例名 我有一个从Sprite继承的类,它总是在实例化时添加到stage中。如何从该类获取对动态文本实例的引用 谢谢 编辑:示例: 我的主类(链接在Flash的发布设置中)如下所示: protected function beginGame(e:MouseEvent){ gotoAndStop(8); var game:GameContainer = new GameContainer(41,8); addC

我有一个动态文本字段,在FlashCS4的中间时间线框架上有一个实例名

我有一个从Sprite继承的类,它总是在实例化时添加到stage中。如何从该类获取对动态文本实例的引用

谢谢

编辑:示例:

我的主类(链接在Flash的发布设置中)如下所示:

protected function beginGame(e:MouseEvent){
    gotoAndStop(8);
    var game:GameContainer = new GameContainer(41,8);
    addChild(game);
    game.x=36;
    game.y=128;
}
游戏容器扩展了MovieClip,并绘制了一些漂亮的gfx

在Flash IDE的第8帧中,有一个名为“scoreText”的动态文本元素实例

我想从GameContainer类访问它


可能吗?

我认为应该将文本字段指定给变量。注意:您无法访问另一帧上的对象,只能在帧上访问该对象

但是。。您可以尝试使用addFrameScript()实现此目的

public var scoreText:TextField

protected function init():void
    addFrameScript(8, assignTextfield);
}

public var assignTextfield():void
{
     this.scoreText = scoreText;
} 

// somewhere in your class

protected function beginGame(e:MouseEvent):void
{
     if (this.scoreText) this.scoreText.text = 'hello world';
}

我没有测试代码,但应该是这样的。如果您使用Flex SDK进行编译,则不需要此分配,因为它已经理解它了(顺便说一句),只要GameContainer在舞台上,您就可以执行以下操作:

if (MovieClip(root).scoreText) {
  MovieClip(root).scoreText.text = "hello";
}

如果它不在后台,它就不会有root属性。

您可以更具体一点,或者显示一些代码吗?你的班级是如何被添加到舞台上的?Righto-添加了一些例子。