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

时间:2010-11-17 19:40:25

标签: flash actionscript-3 timeline

我有动态文本字段,它在Flash CS4的中间时间轴框架上有一个实例名称。

我有一个继承自Sprite的类,它总是在实例化时添加到舞台上。如何从此类中获取对Dynamic Text实例的引用?

谢谢!

编辑:示例:

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

protected function beginGame(e:MouseEvent){
    gotoAndStop(8);
    var game:GameContainer = new GameContainer(41,8);
    addChild(game);
    game.x=36;
    game.y=128;
}

Game Container扩展了MovieClip,并绘制了一些漂亮的gfx。

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

我想从GameContainer类访问它。

可能的?

2 个答案:

答案 0 :(得分:2)

只要GameContainer在舞台上你就可以做到:

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

如果它不在舞台上,它将没有root属性。

答案 1 :(得分:0)

我认为您应该将文本字段分配给变量。请注意,您无法访问另一个框架上的对象,只能在框架上访问它。

但是......你可以尝试使用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进行编译,则不需要此分配,因为它已经理解它(奇怪的不同btw)