我有动态文本字段,它在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类访问它。
可能的?
答案 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)