2010-11-17 50 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)