Остановить основную временную шкалу из функции класса

Мне нужно остановить фильм на первом кадре с помощью функции из класса, я знаю, что могу использовать stop(); или this.stop(); но как мне остановить основную временную шкалу из функции класса?

package {

  public class myApplication {

    public function myApplication(stageRoot:Stage) {
       stop(); // this doesn't work
       this.stop(); // this doesn't work either
    }

  }

}

1 ответ

Решение

Вы можете получить доступ к основной временной шкале из любого экранного объекта (который находится в списке отображения) с помощью root ключевое слово:

MovieClip(root).stop();

Если вашего класса нет в списке отображения (как кажется, ваш случай), то вам нужно будет передать ссылку на что-то, что есть. Я вижу, что вы переходите к этапу, так что вы можете использовать это:

MovieClip(stage.getChildAt(0)).stop();

Основная временная шкала (если вы вручную не добавили что-то еще на сцену в позиции 0) будет первым потомком stage,

Таким образом, ваш код будет выглядеть так:

public function myApplication(stageRoot:Stage) {
   MovieClip(stageRoot.getChildAt(0)).stop();
}

ИЛИ, если на основе ваших комментариев вы просто передаете корневую шкалу в:

public function myApplication(timelineRoot:MovieClip){
    timelineRoot.stop();

    //stage can be had by doing:  timelineRoot.stage
}
Другие вопросы по тегам