Problem z animowanym buttonem

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
tmajewski
Posty: 12
Rejestracja: ndz sty 03, 2010 1:02 pm

Problem z animowanym buttonem

Post autor: tmajewski »

Witam,

walczę od kilku dni ze stronką i tak sobie dziś wymyśliłem, że gdzieś chyba widziałem animowane buttony w html-owej stronce. Chciałbym się zapytać fachowców czy możliwe jest zrobienie animowanego buttona we flashu i zapisanie go w gif i wstawienie do kodu html tak żeby polecenia z Action Script działały. chodzi mi o to, że jak najeżdżam kursorem na button we flashu to pojawia się efekt błysku. Próbowałem wstawić gifa animowanego do html. ale coś nie bardzo to działa. Czy jest to w ogóle możliwe czy ja coś nie tak robię?
Będę wdzięczny za informację.

Pozdrawiam

Tomek
kartofelek007
Posty: 19
Rejestracja: pt paź 23, 2009 10:37 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: kartofelek007 »

Nie jest. Flash to flash, gif to gif.
Mozesz na upartego zrobic pojedynczy flash z jednym guziczkiem i obsługą zdarzeń. Jednak jesli chcesz zrobić taki beznadziejny (nikogo nie obrazajac - czytaj ponizej 3 pkt) krok, musisz skorzystać z Action Script 3. W wersji 2, obsługa obszaru flasha przez kursor nie działała poprawnie wiec nie dasz rady wykryc czy ktos jest na flashu czy nie (teoretycznie da rade - np pobierajac zdarzenia w petli ze strony - ale to jeszcze wieksza bzdura).

Ogólnie zalecam tak:
1) Jak chcesz koniecznie flashowe guziki to niech bedzie to juz cale menu, bo inaczej dla pojedynczego nie ma sensu.
2) Mozesz spokojnie do tego wykorzystac jquery i normalne css - nie dosc ze o wiele bardziej bedzie to dostepne dla uzytkownikow, to jeszcze wyszukiwarki zrobia przed toba uklon lepszym miejscem w wynikach ;)
Tutaj masz bardzo fajny film o tym jak to zrobic:
http://jqueryfordesigners.com/image-fade-revisited/

3) Olac takie patenty. Dla ciebie to super sprawa. Dla odwiedzajacego - nie. Ile animowanych guzikow sprawilo ze wracasz na dana strone? Czy nie wazniejsze jest to co jest na tej stronie? :) Ogolnie stosuj zasade - im mniej bajerow tym lepiej. A jezeli bajery - to najlepiej dodatkowym javascriptem (bez ktorego i tak da sie spokojnie uzywac danej strony)

Pozdrawiam :d
tmajewski
Posty: 12
Rejestracja: ndz sty 03, 2010 1:02 pm

Re: Problem z animowanym buttonem

Post autor: tmajewski »

A więc jest tak jak myślałem. Muszę się zabrać za JavaScript Bez tego nie da się zrobić żadnych bajerów na stronie. Nie znaczy to, że jestem zwolennikiem przesolenia na stronach ale button z tutoriala, którego mi przesłałeś jest po prostu zajebisty :-)
Powiedz mi czy to jest trudny do nauczenia język i czy zgredzik w moim wieku ma szansę na jego opanowanie (32 lata :-)?
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: Marek_bf »

kartofelek007 pisze:W wersji 2, obsługa obszaru flasha przez kursor nie działała poprawnie wiec nie dasz rady wykryc czy ktos jest na flashu czy nie
Z mojego doświadczenia wynika że wszystko działa bez problemu nawet w AS1

Odpowiedź na pytanie @tmajewski, ActionScript obsługuje Flash Player nie da się zapisać i wykonać AS w innych formatach niż swf.

Dla grafik rastrowych w takich efektach używa się CSS.
kartofelek007
Posty: 19
Rejestracja: pt paź 23, 2009 10:37 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: kartofelek007 »

Z actionscriptem w wersji 2 jest problem. Nie ma dobrego sposobu na wykrywanie czy kursor opuscil flasha. Przy slimakowym ruchu kursora nie ma problemu. Co jednak gdy ktos super szybko machnie kursorem przez twoj maly flash-guzik? Zdarzenia nie zalapie i nie bedzie akcji itp. Poszukaj w necie ;)

http://polygeek.com/464_flex_the-cursor ... -or-has-it
http://www.kirupa.com/forum/showthread.php?t=238866

itp

Ogólnie nauczenie sie JS jest banalne jeżeli nie zamierzasz tworzyć aplikacji typu Google maps ;) Js jest bardzo latwym językiem i łatwo się w nim pisze na potrzeby webu. Inna sprawa ze nie jest doskonalym jezykiem, ale to juz dzialka super duper obiektowych programistow.
Tutaj masz moj kursik:

http://www.doman.art.pl/kursjs/

ja jako zgred czasami do niego zagladam :)
Osobiście jednak polecam poszukać w necie informacji na temat jQuery. Wczesniej przejrzec tez troche na temat Hierarchii obiektow na stronie (jest w kursie) i tego czym jest DOM. Jak to opanujesz - nie bedzie mocnych ;]
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: Marek_bf »

kartofelek007 pisze:Z actionscriptem w wersji 2 jest problem. Nie ma dobrego sposobu na wykrywanie czy kursor opuscil flasha. Przy slimakowym ruchu kursora nie ma problemu. Co jednak gdy ktos super szybko machnie kursorem przez twoj maly flash-guzik? Zdarzenia nie zalapie i nie bedzie akcji itp. Poszukaj w necie ;)

http://polygeek.com/464_flex_the-cursor ... -or-has-it
http://www.kirupa.com/forum/showthread.php?t=238866
Po co zaraz szukać w necie :) Ja nigdy nie piszę rzeczy które nie są prawdziwe (sprawdzone przeze mnie). Jak wspomniałem: Według mojej wiedzy, a nie wiedzy z jakichś innych źródeł (w tym tych, które przytaczasz) da się to zrobić i bez AS3, e tam da się to zrobić nawet bez jakiegokolwiek AS.

Oto mój mały guzik wytrzymujący super szybkie machanie kursorem, http://bannerflash.pl/button/ (kompilacja FP8AS2) bez choćby jednej kropki kodu w pliku:
Jak już się ktoś zmęczy tym machaniem to zrozumie że jeśli nie jest Turbodymomenem to nie przeskoczy zdarzenia. No i może nie będzie pisał informacji bez pokrycia. :) Od razu napiszę, że za pomocą AS<3 też można to zrobić bez pętli, wystarczy listener i interval wyłączające się nawzajem i jeden boolean przez nie sterowany reszty można się domyślić.

Pamiętajcie proszę, że webinside.pl wcale nie jest gorsze od kirupa.com, często okazywało się nawet lepsze.
Lobo
Nowy
Nowy
Posty: 70
Rejestracja: śr wrz 23, 2009 9:02 am

Re: Problem z animowanym buttonem

Post autor: Lobo »

animacje w samym gifie (a raczej dwóch) też da się zrobić, nawet w photoshopie. Zależy oczywiście jaki ten button bo może sie okazać, że jakość animacji będzie niezadowalająca.
kartofelek007
Posty: 19
Rejestracja: pt paź 23, 2009 10:37 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: kartofelek007 »

Chodzi o to, ze flash wykrywa zdarzenia myszki jezeli ta jest na nim. Jezeli jej nie ma, to flash nie bedzie wykrywal zdarzen myszki. Wiekszosc gier typu "celowniczek" napisanych w ac2 cierpi na to. Nie wiem jak jest w IE, ale w Firefoxie napewno przerywa dzialanie.
Pewnie nie w kazdej sytuacji jest to problemem ale zdarzaja sie takie ze jest.
Przykladowo masz scene 400x400, a guzik ma wymiary 390x390. W zdarzeniu onRollOut (czy jak to tam szlo - chwilke nie uzywalem) wykrywasz jakies zdarzenie. Jakie jest prawdopodobienstwo ze ci sie uda? :)
Pewnie mozna kombinowac z settimeout czy setInterval, ale to kolejne udogodnienie dla programistow AC. Sam nie wiem - nigdy nie stosowalem tej metody a w chwili obecnej po kawie nie chce mi sie myslec ;]

W samym gifie oczywiscie sie da. Tylko A) i tak bedziesz musial wykryc kiedy kursor znajdzie sie na obrazku i podmieniac obrazki. Nie tedy droga. W ogole animowane guziki to nie droga ktora podarzaja "supermany" :)

Moze to zboczenie ale osobiscie lubie czytelnosc strony. A bardzo (super bardzo) zadko kiedy animowane guziki naleza do "czytelnych". No chyba ze wspoldzialaja z reszta animowanej strony :)
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: Marek_bf »

Jako tak przeczysz sam sobie, najpierw mały guziczek, potem już gra. Wiesz, to duża rozbieżność… Tak widzę, że na siłę trochę szukasz poparcia Twojej tezy która jasno i wyraźnie została obalona. Pisałeś że:

kartofelek007 pisze:W wersji 2, obsługa obszaru flasha przez kursor nie działała poprawnie wiec nie dasz rady wykryc czy ktos jest na flashu czy nie
kartofelek007 pisze:Nie ma dobrego sposobu na wykrywanie czy kursor opuscil flasha.
Udowodniłem, że twierdziłeś niepoprawnie Gdybyś napisał że trudno jest śledzić kursor poza obszarem Flasha to bym się zgodził tylko że to nijak nie pasowałoby do pytania w tym wątku :)

kartofelek007 pisze:Przykladowo masz scene 400x400, a guzik ma wymiary 390x390. W zdarzeniu onRollOut (czy jak to tam szlo - chwilke nie uzywalem) wykrywasz jakies zdarzenie. Jakie jest prawdopodobienstwo ze ci sie uda?
100%, bo dlaczego nie?

P.S. nie AC tylko AS ;) Trzeba też zauważyć iż nie tylko flash ale większość aplikacji które nie „zabierają” kursora systemowego nie wykryje co się z nim dzieje gdy nie dostaną fokusa, w tym też przeglądarki, więc nie ma co szukać dziury w całym.
kartofelek007
Posty: 19
Rejestracja: pt paź 23, 2009 10:37 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: kartofelek007 »

W normalnych warunkach dzialanie przycisku jest takie:
najezdzasz na guzik - cos sie dzieje,
opuszczasz kursorem guzik - cos sie dzieje
- takie jest zalozenie przy animowanym guziku

http://board.flashkit.com/board/showthread.php?t=753626
Szczególnie ostatni post w tym wątku.
http://stackoverflow.com/questions/1923 ... s2/1923453
- to nie zadziala, z powodow podanych wczesniej :)
http://www.ultrashock.com/forums/action ... 88802.html

W kazdym badz razie mowie tylko to co wiem. Kiedys sie z tym problemem spotkalem przy kolejnym projekcie, i w tamtym przykladzie tego nie przeskoczylem (tylko za pomoca AS2)

Przykladowo zrobmy panorame, ktora ma po dwoch stronach niewidzialne "przyciskowe obszary", ktore po najechaniu powoduja przesowanie sie tej panoramy w danym kierunku". Najezdzasz na "obszar", a potem bardzo szybko uciekasz kursorem poza stage flasha. taki głupi przykład


Moj przyklad:
http://www.doman.art.pl/portfolio/inne/ ... emake.html
Ruszasz kursorem, pobierana jest pozycja mychy, po czym ustawiany w tej pozycji odpowiedni obrazek (strzalka). Jak machniesz szybko mycha, to nie zlapie gdzie byl ostatnio kursor i przez to nie przylegnie do krawedzi flasha. To normalne, bo poza flashem juz nie wykrywa pozycji myszki.

W kazdym badz razie guzik jako flash to glupota. Najlepiej zrobic normalny i uzyc stylowania (ktore w polaczeniu z wprowadzanymi efektami CSS3 daja super rezultaty)
Z mojej strony juz sie wypisalem ;) Zrobisz jak bedziesz chcial.

Ps. to tez sie moze przydac: http://pushingpixels.at/experiments/dynamic_shadow/
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: Marek_bf »

Ojej aleś uparty :), widzę że się nie rozumiemy. To, co podajesz teraz nijak ma się do pytania na początku. :)

To nic i w tym przypadku można top pozytywnie załatwić.

1. wykrywasz czy mysz jest nad obszarem flasha
2. Wykrywasz kierunek poruszania myszy prawo, lewo, góra, dół
3. Jeśli mysz przestanie być nad obszarem flasha na podstawie jej ostatniego kierunku wiesz, do której krawędzi ma „dobić” celownik. Można wektor kierunku też obliczyć.
4. I po kłopocie

Jednak niepotrzebnie drążymy temat w najmniej odpowiednim kierunku i dziale.


W pełni natomiast się zgadzam że bezsensu jest robić menu we flashu czy jakieś animowane przyciski gif.
kartofelek007
Posty: 19
Rejestracja: pt paź 23, 2009 10:37 am
Kontakt:

Re: Problem z animowanym buttonem

Post autor: kartofelek007 »

Ale takich dyskusji na polskich stronach malo wiec warto czasami "byc upartym".
ODPOWIEDZ