2015-05-13 4 views
0

Мне нужно остановить фильм в первом кадре, используя функцию из класса, я знаю, что могу использовать 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 
} 
+0

я понял, что я мог бы пройти «этот», как дополнительный аргумент для временной шкалы, но какой это тип? публичная функция myApplication (stageRoot: Stage, timelineRoot) Если я поставлю: MainTimeline или: Timeline для timelineRoot, он выдает ошибки, без типа. – user780756

+1

просто передайте его как 'MovieClip' -' myApplication (timelineRoot: MovieClip) '. Вы можете получить доступ к сцене: 'timelineRoot.stage', нет необходимости в другом параметре – BadFeelingAboutThis

Смежные вопросы