Skocz do zawartości

Flash: problem z przyciskiem menu


secret

Rekomendowane odpowiedzi

Witam! Bardzo proszę o pomoc we flashu. 4 godziny próbuje zrobić jeden głupi przycisk w menu i nie idzie, ostra k...ca mnie bierze, żeby tyle czasu przesiedzieć, przemyśleć i nic nie wymyśleć. Chodzi o to, że mam takie menu: http://www.unk.pl/test.swf i jak najadę na przycisk "oferta" to przycisk drgawek dostaje heh. Powinno być tak: przycisk zjeżdza z góry na dół i jak najadę na niego to powinien się zatrzymać, a on mi tu drga i drga i nie przestaje :/ Zdaje się mam w programie dobrze zrobione, a ciągle nie wiem gdzie może być błąd.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 17
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

no laska laska :D

chodzi o to, że to nie jest kod w jednym. już pokazuję. na słowie "oferta" mam movie clipa, a w nim takie coś: http://www.unk.pl/przycisk.jpg

w pierwszej klatce akcje, mam taki kod:

stop();
this.onRollOver = function () {
   gotoAndPlay("on");
}
this.onRollOut = function () {
   gotoAndPlay("off");
}
this.onRelease = function () {
   _parent.gotoAndStop("oferta");
}

W klatce 7 akcje mam kod stop();

 

I to tyle, jakiś czas temu robiłam podobne przyciski z takim samym kodem, z tym że bez wysuwania, ale ten kod działał jak należy.

Odnośnik do komentarza
Udostępnij na innych stronach

nie bardzo rozumiem. jeśli usunę funkcję onRollOver to wcale nie będzie link działać, łącze nie będzie aktywne.

 

nie chcę się narzucać, ale może będzie łatwiej, jak wrzucę plik źródłowy tego menu: http://www.unk.pl/test.rar może ktoś wyczai co jest nie tak :)

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

Gdzies to sie musi zapetlac, w ogole w AS2 jest to mega nieczytelne, tak logicznie to onRollOut onRollOver powinno byc przypisane do jakiegos pola np, mozliwe ze w jednej klatce akcja dziala, klip zaczyna sie odtwarzac, w nastepnej, klatce "cos" do czego kod byl przypiany znika, cos sie zmienia i jest wykonywany kod z onRollOut i tak w kolko , w sumie to rozwiazanie jest nieestetyczne, wrecz nieporfesjonalne.

 

Pomysl, nawet gdyby to dzialalo najezdzasz myszka na przycisk, zaczyna sie wysuwac, zjezdzasz pod czas kiedy movieclip sie odtwarza (przycisk wysuwa) i zostaje wykonana akcja onRollOut, gdzie masz przeskok do czesci gdzie przycik jest juz caly wysuniety i zaczyna sie chowac, znowu na niego najezdzasz i jest przeskok jak jest schowany i sie wysuwa itd... oczywiscie mozna byloby to poblokowac i czekac az odtwarza sie cale sekwencje ale to tez bez sensu. Lepiej zastosowac event onEnterFrame i przeskakiwac co klatke (next/prev) po klipie z animacja w zaleznosci czy kursor znajduje sie w na przycisku (btn_1) lub nie. Animacja powinna miec tylko sekwencje wysuwania przycisku

 

tutaj przykladowy kod w AS3

 

btn_1 - pole przycisku

mc_1 - klip z animacja przycisku

 

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.nextFrame();
       }
       if (over_or_out == 0 )  
       {
           mc_1.prevFrame();        
       }
   }
}

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

kod tak na szybko, zeby bylo estetyczniej trzeba jeszcze posuwac evenLitener'y kiedy nie sa potrzebne

Edytowane przez Johny
Odnośnik do komentarza
Udostępnij na innych stronach

tu masz przyklad z wykorzystaniem AS2:

 

http://www.flashvault.net/tutorial.asp?ID=143

 

Dlugosc kodu nie ma tu wiekszego znaczenia, w AS3 masz kilka liniej wiecej bo w kodzie dodajesz EventListenery, masz wiekszy porzadek umieszczajac caly kod w jednej klatce zamiast kawalki kodow na poszczegolnych elementach w scenie jak w AS2

Odnośnik do komentarza
Udostępnij na innych stronach

to wcale mi nie ułatwia sprawę, przy tym tutorialu pewnie z parę godzin posiedzę i zrobię o ile mi się uda, sporo tam tego opisane jest. pewnie najprościej będzie jak zrobię zwykłą zmianę koloru tekstu i szkoda nerwów.

 

zrobiłam identycznie jak na stronie: http://www.flashvault.net/tutorial.asp?ID=143 lecz u mnie przycisk sam się wysuwa i nie chce się zatrzymać, ciągle jest w ruchu, a nie powinno tak być. on powinien się wysunąć wtedy, kiedy ja najadę na niego. kurcze dziwne :/

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

no laska laska :D

chodzi o to, że to nie jest kod w jednym. już pokazuję. na słowie "oferta" mam movie clipa, a w nim takie coś: http://www.unk.pl/przycisk.jpg

w pierwszej klatce akcje, mam taki kod:

stop();
this.onRollOver = function () {
   gotoAndPlay("on");
}
this.onRollOut = function () {
   gotoAndPlay("off");
}
this.onRelease = function () {
   _parent.gotoAndStop("oferta");
}

W klatce 7 akcje mam kod stop();

 

I to tyle, jakiś czas temu robiłam podobne przyciski z takim samym kodem, z tym że bez wysuwania, ale ten kod działał jak należy.

 

kod jest okej, ale element na ktorym jest zaczepiony chowa sie.. wiec po akcji rollover od razu odpala sie rollout :D

 

podczep te akcje nie na samym elemencie tylko daj na wierzchu dodatkowe puste

rectangle do ktorych podczep akcje... a chowaj buttona tak jak do tej pory

Odnośnik do komentarza
Udostępnij na innych stronach

Wielkie dzięki za pomoc! :) Kamień spadł mi z serca, a raczej z brzucha, bo tak mnie to martwiło że tego nie zrobię, że aż mnie skręcało w środku hehe.

kamil.ochel - brawo za rozwiązanie, o to mi właśnie chodziło, wielkie dzięki za poświęcony czas :*

 

aha, zapomniałam dodać najważniejszego - jesteście jedynym forum, którzy odpisują i pomagają. wcześniej pisałam na forach o flashu ale tam nawet nie raczą odpisać, a jak odpiszą, to byle jak i więcej nie wchodzą do tematu. tak więc możecie być z siebie dumni :)

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

ależ nie ma sprawy. jak używasz akcji na klatce w movie clipie (i chodzi mi o te rollovery itd) to dobrze jest sobie zrobić sztuczny przycisk (ktory zakrywa cala powierzchnie klipu ale jest niewidoczny). dlatego Ci się zapętlało :)

 

tjviking nie ma sensu podpinać akcji pod rectangle można użyć tylko this na klatce ale taki rectangle musi być obecny :)

Odnośnik do komentarza
Udostępnij na innych stronach

ależ nie ma sprawy. jak używasz akcji na klatce w movie clipie (i chodzi mi o te rollovery itd) to dobrze jest sobie zrobić sztuczny przycisk (ktory zakrywa cala powierzchnie klipu ale jest niewidoczny). dlatego Ci się zapętlało :)

 

tjviking nie ma sensu podpinać akcji pod rectangle można użyć tylko this na klatce ale taki rectangle musi być obecny :)

 

nie wiem, nie zagladnalem do pliku :P

za leniwy jestem, jak zwykle wszystko mozna zrobic na wiele sposobow

Odnośnik do komentarza
Udostępnij na innych stronach

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

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności