Нужна помощь с анимацией галереи в AS3 - PullRequest
0 голосов
/ 19 августа 2010

Я пытался создать галерею во Flash с различными клипами.

Timeline
-back button
-next button
-stop button
-play button 
-Main Movie
 (these are inside Main Movie)
 --Animation 1
 --Animation 2
 --Animation 3

У меня настроены анимации в главном фильме с именами экземпляров и кадров, такими как «Анимация 1». Я заставил его играть и останавливаться, но я не могу переходить вперед и назад по каждой анимации с помощью кнопок назад и вперед. Как правильно я могу это осуществить?

--- Обновление 8-20-2010

Я получил его на работу, но с крошечной ошибкой. Всякий раз, когда я нажимаю кнопку «Далее» или «Назад», он переходит к имени первого кадра, а затем к другому. Я сделал трассировку и обнаружил, что она насчитывает «ad-1, ad-2, ad-3 и т. Д.» Или «ad1, ad2, ad3 и т. Д.»

var currentAnimationIndex:int;
var currentAnimation:int;
var animeOstart:Number = 1;
var animeOend:Number = 3;

function playAnimation(frameIndex:int):void 
{ 
   var frameName:String = "ad" + frameIndex.toString();
   trace(frameName)
   ads.gotoAndPlay(frameName);
   ads.movie.gotoAndPlay(1);

   currentAnimationIndex = frameIndex; 
} 

function playBack(event:MouseEvent):void 
{ 
   --currentAnimationIndex; 

   if(currentAnimationIndex < animeOstart) 
      currentAnimation == 1; 

  playAnimation(currentAnimationIndex); 
} 

function playNext(event:MouseEvent):void 
{ 
   ++currentAnimationIndex; 

   if(currentAnimationIndex > animeOend) 
      currentAnimation == 3; 

  playAnimation(currentAnimationIndex); 
}

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Вы должны разместить следующий код на главной временной шкале, где находятся кнопки. Я дал имя экземпляра "main" для вашего основного мувиклипа.

  var currentAnimationIndex:int;

  public function playAnimation(frameIndex:int):void
  {
       var frameName:String = "Animation " + frameIndex.toString();
       main.gotoAndStop(frameName);

       currentAnimationIndex = frameIndex;
  }

  public function playBack(event:MouseEvent):void
  {
       --currentAnimationIndex;

       if(currentAnimationIndex < 1)
          currentAnimation == 3;

      playAnimation(currentAnimationIndex);
  }

  public function playNext(event:MouseEvent):void
  {
       ++currentAnimationIndex;

       if(currentAnimationIndex > 3)
          currentAnimation == 1;

      playAnimation(currentAnimationIndex);
  }

Создайте переменную, которая регистрирует текущую анимацию, и уменьшите ее или увеличьте, чтобы вернуться или воспроизвести следующую анимацию. Назначьте соответствующую функцию кнопке с прослушивателем MouseEvent. Здесь я использовал 1 и 3, но у вас может быть пара переменных, minAnimIndex и maxAnimIndex.

Надеюсь, это поможет!

0 голосов
/ 23 августа 2010

Узнал, как это сделать в AS3 !!!!

b_back.addEventListener(MouseEvent.CLICK, prevSection);
b_next.addEventListener(MouseEvent.CLICK, nextSection);

function nextSection(event:MouseEvent):void {

    var thisLabel:String = ads.currentLabel; // gets current frame label as string
    var thisLabelNum:String = thisLabel.replace("ad", ""); // cuts the leading letters off of the number
    var curNumber:Number = Number(thisLabelNum); // converts that string number to a real number
    if (curNumber < 3) {
        var nextNum:Number = curNumber + 1; // adds 1 to the number so we can go to next frame label
        ads.gotoAndPlay("ad" + nextNum); // This allows us to go to the next frame label
    }else if(curNumber >= 3){
        ads.gotoAndPlay("ad" + 1); // This allows us to go to the next frame label
    }
}

function prevSection(event:MouseEvent):void {

    var thisLabel:String = ads.currentLabel; // gets current frame label as string
    var thisLabelNum:String = thisLabel.replace("ad", ""); // cuts the leading letters off of the number
    var curNumber:Number = Number(thisLabelNum); // converts that string number to a real number
    var prevNum:Number = curNumber - 1; // subtracts 1 from the number so we can go to next frame label
    ads.gotoAndPlay("ad" + prevNum); // This allows us to go to the previous frame label*/
    if (curNumber == 1) {
        ads.gotoAndPlay("ad" + 3); // This allows us to go to the next frame label
    }

}

нашел его с этого сайта.http://www.developphp.com/Flash_tutorials/show_tutorial.php?tid=161

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...