Skocz do zawartości

Featured Replies

Napisano

Cze,

Mam problem z animacja mouseover, out. Zerknijcie tu: http://www.elbr.pl/flash.html . Po szybkim przejechaniu przez obszar 'hit' animacja zatrzymuje sie, ja chcialbym aby dochodzila do konca. Macie moze jakies pomysly jak ten problem rozwiazac?

 

ActionScript 3.0

 

//doswietlacze//

btn_1.addEventListener(MouseEvent.MOUSE_OVER,btnover);
btn_1.addEventListener(MouseEvent.MOUSE_OUT,btnout);
btn_1.addEventListener(MouseEvent.CLICK,btnclick);

function btnover(event:MouseEvent):void{
   mc_1.gotoAndPlay (11);
}

function btnout(event:MouseEvent):void{
   mc_1.gotoAndPlay (20);
}

function btnclick(event:MouseEvent):void{
   navigateToURL(doswietlacze, "_self");
}

  • Odpowiedzi 4
  • Wyświetleń 1,8k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Spróbuj dać w btnout stop() dla mc przed gotoAndPlay ,a jeśli ma się odegrać do końca to po prostu wrzuć w ifa z odpowiednim warunkiem.

Możesz też dodać eventa dopiero w momencie osiągnięcia odpowiedniej klatki tudzież załatwić to Tweenem.

Napisano

Troche nie czaje, dojechala do konca i co dalej? Moge zaproponowac Ci inne rozwiazanie, np najezdzasz na przycisk i jest pierwsza animaja tak dlugo jak kursor znajduje sie na tym przycisku, w momencie kiedy zjedziesz myszka, animacja sie cofa, ale... jesli myszka bedzie tak dlugo na przycisku ze ta pierwsza czesc animacji dojdzie do konca a pozniej zjedziesz myszka to odtwarza sie druga czesc animacji.

 

Kod:

 

var over_or_out:int;

btn_1.addEventListener(MouseEvent.CLICK, btnclick);
btn_1.addEventListener(MouseEvent.MOUSE_OUT, btnout);
btn_1.addEventListener(MouseEvent.MOUSE_OVER, btnover);
this.addEventListener(Event.ENTER_FRAME, onEnterFrames);

function btnout(event:MouseEvent):void {
   over_or_out = 0;
}

function btnover(event:MouseEvent):void {
   over_or_out = 1;
}

function onEnterFrames(event:Event)
{
   if ((mc_1.currentFrame != mc_1.totalFrames) || (mc_1.currentFrame != 0)) 
   {
       if (over_or_out == 1 && mc_1.currentFrame != 11) 
       {
           mc_1.nextFrame();
       }
       if (over_or_out == 0 && mc_1.currentFrame         {
           mc_1.prevFrame();
       }
       if (over_or_out == 0 && mc_1.currentFrame >= 11)  
       {
           mc_1.nextFrame();
       }

   }
}

function btnclick(event:MouseEvent):void{
.....
}

Tutaj akurat animacja dziala w zakresie - pierwsza czesc od klatki 0 do 10, druga czesc od 11, do ktorej tam chcesz... oczywiscnie wszystko mozna tam pozmieniac i dostosowac do twocih potrzeb

 

 

EDIT:

 

Tutaj masz przyklad:

http://bearsfromwoods.com/johny/

 

Tutaj plik FLA:

http://bearsfromwoods.com/johny/button.fla

Edytowane przez Johny

Napisano
  • Autor

Dzieki Panowie z wasza pomoca poradzilem sobie z tym problemem, wystarczylo poprawic nieco funkcje btnout:

function btnout(event:MouseEvent):void{
   if(mc_1.currentFrame         mc_1.gotoAndPlay (21);
   }
}

Dzieki!

 

efekt: http://www.elbr.pl/flash.html

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności