Flash / AS3: доступ к экземпляру DisplayObject в кадре со средней шкалой времени - PullRequest
0 голосов
/ 17 ноября 2010

У меня есть поле «Динамический текст» с именем экземпляра на среднесрочном фрейме во Flash CS4.

У меня есть класс, который наследуется от Sprite и который всегда добавляется на сцену при создании экземпляра.Как я могу получить ссылку на мой экземпляр Dynamic Text из этого класса?

Спасибо!

РЕДАКТИРОВАТЬ: пример:

Мой основной класс (связанный в настройках публикации Flash) идетвот так:

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

Контейнер для игр расширяет MovieClip и рисует несколько симпатичных картинок.

В кадре 8 в среде IDE Flash есть экземпляр элемента «Динамический текст» с именем «ScoreText».

Я хочу получить доступ к этому из класса GameContainer.

Возможно?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2010

Пока GameContainer находится на сцене, вы можете делать:

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

Если он не на сцене, у него не будет корневого свойства.

0 голосов
/ 17 ноября 2010

Я думаю, вам следует присвоить текстовое поле переменной. Обратите внимание, что вы не можете получить доступ к объекту, находящемуся в другом кадре, вы можете получить к нему доступ только тогда, когда находитесь в кадре.

Но ... вы можете попробовать использовать 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, это назначение не требуется, так как оно уже понимает (странно другое)

...