2015-08-19 3 views
0

У меня проблема с моим приложением. У меня 3 кадра на шкале времени, во втором кадре у меня есть MC со своим собственным классом: в конце анимации MC я вызываю функцию из основного класса. Кодекса КЛАССА MC ЭТОAS3 gotoAndStop не работает

public function frame134() { 
     stop(); 

     var vMainTimeline: MainTimeline = new MainTimeline(); 
     vMainTimeline.gotoFrame3(); 
    } 

функции в основной класс ЭТО

public function gotoFrame3() { 
     trace("gotoFrame3"); 
     this.gotoAndStop(3); 
     trace("DONE"); 
    } 

Выход в консоли gotoFrame3 и DONE но gotoAndStop (3); не работает. Любое предложение или помощь? Заранее благодарен

+0

Вы создаете новый экземпляр MainTimeline. Это плохо. Удалите эти две строки и попробуйте что-то вроде 'MovieClip (root) .gotoFrame3();' вместо этого. – Karmacon

+0

Хорошо, это сработало для меня. Я использовал этот код var vMainTimeline: MainTimeline = new MainTimeline(); после руководства, так как я могу вызвать публичную функцию из другого класса? – LoreSchaeffer

+0

Если вы хотите вызвать открытый метод напрямую, вам нужно иметь ссылку на объект. Альтернативой является использование событий. – Karmacon

ответ

0

Чтобы создать экземпляр MainTimeline, вам необходимо получить справочную информацию, используя parent или связавшись с ней по номеру stage. Замените свой метод frame134() с помощью кода ниже.

public function frame134() { 
      var stageRef = this.parent; 
      stageRef.gotoAndStop(3); 
     } 

или

public function frame134() { 
      stage.gotoAndStop(3) 
     } 

Надеется, что это будет работать для вас.

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