2010-11-17 100 views
0

我有在Flash CS4中的中等时间线帧上具有实例名称的动态文本字段。Flash/AS3:在中等时间线帧上访问DisplayObject的实例

我有一个继承自Sprite的类,它总是添加到实例化的阶段。我如何从这个类中获得对我的动态文本实例的引用?

谢谢!

编辑:例如:

我的主类(在Flash的发布设置链接)是这样的:

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

游戏集装箱扩展影片剪辑,并得出一些非常GFX。

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

我想从GameContainer类访问这个。

可能吗?

+0

你能更具体一些还是显示一些代码?你的班级如何加入舞台? – Robusto 2010-11-17 19:47:27

+0

右键 - 添加一些例子。 – mjames 2010-11-17 19:53:35

回答

2

只要GameContainer是在舞台上,你可以这样做:

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

如果不是在舞台上它不会有根特性。

+0

完美,谢谢。 – mjames 2010-11-17 20:36:37

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)