Управление / инициализация внешнего класса [AS3] - PullRequest
0 голосов
/ 23 июня 2011

Перед тем как уйти, я знаю, что здесь много вопросов, которые очень похожи.Тем не менее, ни одно из приведенных решений не помогло мне, возможно, потому что мой случай немного отличается.

У меня есть основной класс, который загружает внешний класс (отдельный файл .as).В этом внешнем классе есть несколько объектов, с которыми связаны анимация и события времени.Что я хочу сделать, так это запускать анимацию, когда в моем главном классе вызывается определенная функция.Тем не менее, я пробовал множество вещей, чтобы остановить и / или сбросить анимацию во внешнем классе, поэтому он будет запускаться с самого начала, если вызывается необходимая функция в Main.

package  {
   //required imports

   public class Main extends MovieClip {
   var myClass:MyClass = new MyClass; //this is the external class
   var button:Button = new Button; //movieclip in the library   

      public function Main() {
         addChild(myClass); //I want to do this here so the objects show from the start
         //try 1: myClass.gotoAndStop(1);
         //try 2: myClass.stop();

         button.addEventListener(MouseEvent.MOUSE_CLICK, playAnimation);
      }

      function playAnimation (e:MouseEvent) {
         //try 1: myClass.gotoAndPlay(1);
         //try 2: myClass.start();
         //try 3: controlling the startTweening() function in MyClass, I tried different ways
      }
   }
}

Проблема начинается в главном классе выше.Я пока не хочу анимировать!

MyClass.as:

package {
  //required imports

   public class MyClass extends MovieClip {
      //vars

      public function MyClass() {
         startTweening();
      }
      function startTweening() {
        //tween event
        //calling next function (with use of a TimerEvent) after tween is done. This is repeated several times.
      }
   }
 }

Все в этом классе работает нормально, так что это не проблема.Если это имеет какое-то значение, я использовал TweenMax в MyClass для анимации.Я не использовал временную шкалу в .fla.

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 23 июня 2011

Если вы не хотите анимировать при создании MyClass, удалите startTweening(); вызов из конструктора MyClass.

Сделайте startTweening(); функцию public и вызывайте ее всякий раз, когда вам нужно, с помощью myClass.startTweening().

Здесь MyClass

public class MyClass extends MovieClip {
  //vars

  public function MyClass() {

  }

  public function startTweening() {
    //tween event
    //calling next function (with use of a TimerEvent) after tween is done. This is repeated several times.
  }
}

а здесь Главный класс

public class Main extends MovieClip {
   var myClass:MyClass;
   var button:Button = new Button; //movieclip in the library   

      public function Main() {
         myClass = addChild(new MyClass()) as MyClass; 
         button.addEventListener(MouseEvent.MOUSE_CLICK, playAnimation);
      }

      function playAnimation (e:MouseEvent) {
         myClass.startTweening();
      }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...