Nikes 10 Posted February 10, 2011 Share Posted February 10, 2011 Witam. Stworzyłem buttona. Na początku jest to zwykły kolor zielony. Po najechaniu myszką zmienia płynnie kolor na niebieski. Chce zrobić, aby teraz jezeli ktos zjedzie myszką z guzika, ten spowrotem płynnie zmienia się do niebieskiego koloru. Jak to zrobić? Link to post Share on other sites
olaf 4,029 Posted February 10, 2011 Share Posted February 10, 2011 zalezy jak robiles pierwsza akcje. jezeli na play(), to musisz odwrocic animacje albo dodac animacje powrotną, jezeli skryptem to odwrotnie do tego jak robiles. Link to post Share on other sites
illy 282 Posted February 10, 2011 Share Posted February 10, 2011 on mouseover gotoandplay on mouseout gotoandplay ja zawsze tak robilem, ale to pewnie jeszcz action script 0.5 beta Link to post Share on other sites
Grave 143 Posted February 10, 2011 Share Posted February 10, 2011 ma najechanie dajesz PLAY, a na zjechanie interwał z PREV FRAME (interwał wywołujący akcję cofania o jedną klatkę). Potem żeby interwał PREV FRAME nie kolidował z PLAY do akcji na najechanie trzeba jeszcze dodać instrukcję zatrzymującą interwał. Aby to zoptymalizować możesz jeszcze dodać warunek IF który automatycznie wyłączy interwał po cofnięciu do pierwszej klatki (aby w tle nie pracował bez sensu interwał, który non stop próbuje cofnąć animację, kiedy to jest już niemożliwe) Link to post Share on other sites
Nikes 10 Posted February 10, 2011 Author Share Posted February 10, 2011 Cóż, ja to zrobiłem inaczej. Stworzyłem sobie movieclip'a zielonego kwadratu, który zmienia sie płynnie na niebieski. Na ostatnie klatce dałem akcje "stop()" Następnie stworzyłem buttona: i mamy : UP - tutaj wlepiłem movieclipa OVER - nic DOWN - nic HIT - nic dało mi to efekt po najechaniu na guzika myszką, che uzyskać teraz efekt powrotu gdy zjadę myszką. Z tego co piszecie, rozumiem że wy podaliście mi troche inną możliwość. Zrozumiałem to tak, że w movieclip musze wprowadzić action powodujący otworzenie animacji po najechaniu myszką, nastepnie w ostatniej klatce wklepać prevFrame() którego jeszcze nie znam. A o tym co kolega Grave pisze, a dokładniej (Aby to zoptymalizować możesz jeszcze dodać warunek IF który automatycznie wyłączy interwał po cofnięciu do pierwszej klatki (aby w tle nie pracował bez sensu interwał, który non stop próbuje cofnąć animację, kiedy to jest już niemożliwe) ) nie bardzo rozumiem. Link to post Share on other sites
olaf 4,029 Posted February 10, 2011 Share Posted February 10, 2011 (edited) tam nie masz kontroli nad OUT. Nie wrzucaj niczego do buttona. Zró movie clip. z 20klatkami w pierwszej i 10 wpisz: stop() - klatki kluczowe tworzysz przez f6 nazwij go jakos i daj nad niego przezroczysty button. nazwij movie clipa mc a buton bt i w oknie akcji (f9 jak wybierzesz klatkę ale nie zaznaczony zaden obiekt na scenie bo wklei kod do niego) bt.onRollOver = function () {mc.gotoAndPlay(2)} bt.onRollOut = function () {mc.gotoAndPlay(11)} w AS3 bt.addEventListener (MouseEvent:MOUSE_OVER) {goUp} function goUp (e:MouseEvent) {mc.gotoAndPlay (2)} bt.addEventListener (MouseEvent:MOUSE_OUT) {goDown} function goDown (e:MouseEvent) {mc.gotoAndPlay (11)} jakos tak Edited February 10, 2011 by olaf Link to post Share on other sites
Nikes 10 Posted February 10, 2011 Author Share Posted February 10, 2011 (edited) Dzięki, próbuje to ogarnąć. --- Jeżeli sie nie uda > W takim razie muszę zrobić wszystko w movieclipcie. Pomoże mi ktoś znaleźć w miarę pomocnego videotutka na Youtube ? Edited February 10, 2011 by Nikes Link to post Share on other sites
Nikes 10 Posted February 10, 2011 Author Share Posted February 10, 2011 Niestety tego nie ogarniam. Link to post Share on other sites
BizU 171 Posted February 10, 2011 Share Posted February 10, 2011 (edited) dla torma pokazywałem ten trik ostatnio: http://asria.pl/backPlayer.fla tam powinno być, tak czy inaczej, w momencie przypisujesz dla zmiennej offset, jakiś skok, powiedzmy -10, to cofasz się o 10 klatek(przypadkiem tyle ile ma Twoja animacja zmiany koloru) czyli: Dodajesz nową warstwę dla kodu AS (klatka kluczowa musi obejmować całego timeline), w niej: if (!hasEventListener(Event.ENTER_FRAME)) addEventListener(Event.ENTER_FRAME, backPlayer); var offset:int = 0; function backPlayer(e:Event):void { if (offset!=0) stop(); if (offset>0) { nextFrame(); offset--; } else if(offset { prevFrame(); offset++; } } function goToFrame(fr:int):void { offset = fr - currentFrame; } gdzieś tam w czeluściach tego movieclipa masz animacje bittona. ów przycisk nazwałeś: "przycisk", to dajesz mu akcje: przycisk.addEventListener(MouseEvent.ROLL_OVER, przyciskOver); przycisk.addEventListener(MouseEvent.ROLL_OUT, przyciskOut); function przyciskOver(e:Event):void { play(); } function przyciskOut(e:Event):void { goToFrame(1); } to Ci zagwarantuje ze będzie działać w każdym przypadku, i animacja w trakcie jej wykonywania zacznie się cofać ----------- up: bt.addEventListener (MouseEvent:MOUSE_OVER) {goUp} function goUp (e:MouseEvent) {mc.gotoAndPlay (2)} bt.addEventListener (MouseEvent:MOUSE_OUT) {goDown} function goDown (e:MouseEvent) {mc.gotoAndPlay (11)} bt.addEventListener(MouseEvent.ROLL_OVER,goUp); bt.addEventListener(MouseEvent.ROLL_OUT,goDown); function goUp (e:MouseEvent) {mc.gotoAndPlay (2)} function goDown (e:MouseEvent) {mc.gotoAndPlay (11)} Edited February 10, 2011 by BizU Link to post Share on other sites
Grave 143 Posted February 11, 2011 Share Posted February 11, 2011 Aj ja jaj... Walnij movieclip który ma być przyciskiem i zrób w nim animację jaką tam chcesz. Potem w pierwszą klatkę tego klipu wklej poniższy kod, a w ostatnią tylko "stop();" I tyle filozofii ;) stop(); addEventListener(MouseEvent.ROLL_OVER, cursorOver); addEventListener(MouseEvent.ROLL_OUT, cursorOut); function goPrev(e:Event) { prevFrame(); if (currentFrame==1) { removeEventListener(Event.ENTER_FRAME, goPrev); } } function cursorOver(e:MouseEvent):void { removeEventListener(Event.ENTER_FRAME, goPrev); play(); } function cursorOut(e:MouseEvent):void { addEventListener(Event.ENTER_FRAME, goPrev, false, 0, true); } To w AS3, a w AS2 jest jeszcze łatwiej. Link to post Share on other sites
BizU 171 Posted February 11, 2011 Share Posted February 11, 2011 zgdabne, tak czy inaczej możliwości masa jest. Link to post Share on other sites
Nikes 10 Posted February 11, 2011 Author Share Posted February 11, 2011 Aj ja jaj... Walnij movieclip który ma być przyciskiem i zrób w nim animację jaką tam chcesz. Potem w pierwszą klatkę tego klipu wklej poniższy kod, a w ostatnią tylko "stop();" I tyle filozofii ;) To w AS3, a w AS2 jest jeszcze łatwiej. Zrobiłem tak. 1 warstwa. Namalowałem kropkę. F8 movieclip. Otworzyłem movieclipa i animowalem krope. W 1 klatce walnalem kod ktory podales, w ostatniej stop() wracam do sceny. Odpalam scene i efekt jest taki ze po najechaniu mychą, kropka wykonuje tylko animacje od 1 klatki do 5 i zapętla. A klatek jest ponad 20. Gdzie popełniłem błąd ? Link to post Share on other sites
panzerYeti 20 Posted February 11, 2011 Share Posted February 11, 2011 jeżeli pracujesz w AS 2.0 to moze tak: v.1 button_mc.stop(); button_mc.onRollOver = function(){ this.onEnterFrame = function(){ if(this._currentframe this.nextFrame() }else { delete this.onEnterFrame } } } button_mc.onRollOut = function(){ this.onEnterFrame = function(){ if(this._currentframe>1){ this.prevFrame() }else { delete this.onEnterFrame } } } potrzebujesz tylko MC z animacja na 20 klatek, kod wklejasz do wolnej klatki, w scenie w której jest wrzucony MC lub v 2. import mx.transitions.Tween; import mx.transitions.easing.*; button2_mc.kolor_mc._alpha = 0; button2_mc.onRollOver = function(){ new Tween(button2_mc.kolor_mc, "_alpha", None.easeOut,button2_mc.kolor_mc._alpha, 100,.5, true); } button2_mc.onRollOut = function(){ new Tween(button2_mc.kolor_mc, "_alpha", None.easeOut, button2_mc.kolor_mc._alpha,0, .5, true); } w tym przypadku w MC button2_mc nie ma zadnej animacji na timline, na 1 warstwie rysujesz sobie obiekt np. czerwony, a na drugiej duplikujesz go i tworzysz MC kolor_mc (instance name) ze zmienionym kolorem. Kod steruje wartoscia alpha MC kolor_mc pozdr Link to post Share on other sites
Grave 143 Posted February 11, 2011 Share Posted February 11, 2011 Tutaj masz pokazane na filmie jak to zrobić ;) http://www.wrzuc.to/k4K7pd.wt Link to post Share on other sites
Nikes 10 Posted February 11, 2011 Author Share Posted February 11, 2011 Dzieki Grave ! Mam teraz kolejny problem. http://www.tocomam.com/new.html Najeżdżając myszka na lewą ikone "Q" rozwija sie animacja. OK. Problem w tym, że pole " nacisku " jest rownież do okoła ikony Q. Dla tego ktos najedzie myszką obok "Q" to animacja sie otworzy. Nie odpowiada mi to. Można coś z tym zrobić? Link to post Share on other sites
Grave 143 Posted February 11, 2011 Share Posted February 11, 2011 Nic skomplikowanego - zobacz kolejny filmik ;) http://www.wrzuc.to/mgPlxhUTM5.wt 1 Link to post Share on other sites
Nikes 10 Posted February 11, 2011 Author Share Posted February 11, 2011 ok, Grave rozwiązał moje aktualnie wszystkie problemy :) Dzięki wielkie. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now