UBPlanet.pl Forum graficzne: Drag and drop w Action Script 3 - UBPlanet.pl Forum graficzne

Skocz do zawartości

Bierz udział w konkursach i wygrywaj nagrody!
» MOTW #27 - Plac zabaw
Termin głosowania - do 09.05.12 (21:00)
» SOTW #210 - Subkultury
Termin oddawania prac - do 14.05.12 (21:00))
» OSGC #106 - Free Time
Termin oddawania prac - do 27.05.12 (22:00)
» LOTW #49 - Logistyka
Termin oddawania prac - do 29.05.12 (21:00)
» POTW #61 - Martwa natura
Termin głosowania - do 26.05.12 (22:00)
» UBP WORM Dołączona grafika
Twórz graficzną historie!

Dołączona grafika

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Options
Drag and drop w Action Script 3 nadawianie MovieClipom włąściwości podnieś i upuść!

#1 Użytkownik nie jest zalogowany   Jacked 

  • Specjalista
  • PipPipPipPip
  • Wyświetl galerię
  • Grupa: Member
  • Postów: 404
  • UBP Points 2392 (Przekaż)
  • Rejestracja: 01 czerwiec 10
  • Imię:Jacek
  • Płeć:Mężczyzna
  • Drużyna:brak
  • Pomógł:38
  • Wygranych:Nigdy
  • Przegranych:Zawsze

Napisano 18 styczeń 2011 - 23:27

Dołączona grafika

Ten tutek będzie o prostej, a jakże wygodnej, nowoczesnej i atrakcyjnej rzeczy jaką jest Drag and drop(podnieś i puść). Dzięki temu, Twój movieClip po kliknięciu i przytrzymaniu lewego przycisku myszy, podniesie się, i będziesz mógł go położyć w innym miejscy na scenie. Przydaje się to szczególnie podczas projektowania różnych widgetów, odtwarzaczy MP3, czytników RSS, czy masy innych elementów.
Żeby zaprezentować Ci działanie takiego elementu muszę stworzyć nowy plik Action Script 3. Jeśli masz już element któremu chcesz dodać właściwość Drag and drop, to przejdź do kroku trzeciego, jednak upewnij się, że nadałeś "instance name" swojemu movieClipowi.
[OUTCOME]

Przygotowania
1. Tworzę nowy plik Action Script 3:
Dołączona grafika

2. Importujemy jakiś obiekt, zdjęcie czy obrazek. Jeśli masz swój obiekt MovieClip, nie robisz tego. Aby zaimportować grafikę naciśnij "ctrl + r", następnie wybierz swój obrazek. Jeśli Twój orazek jest za duży możesz użyć narzędzia Free Transform Tool(Q) aby go zmniejszyć.
Dołączona grafika

3. Wybierz narzędzie selection tool(naciśnij "V"). Następnie zaznacz zaimportowaną grafikę. Trzeba ja przekonwertować na obiekt MovieClip. Aby to zrobić wciśnij "F8" na klawiaturze. Następnie nazwij swój obiekt. Nazwa dowolna :/
Dołączona grafika

4. Grafika stała się obiektem Movie Clip, teraz możemy na nią wpływać poprzez Action Script, jednak zanim to zrobili musimy nadać "instance name" w panelu "properties" naszemu MovieClipowi, dzięki temu będziemy mogli się odwoływać do niego z poziomu Action Script.
Dołączona grafika

Jak będzie działał kod
Zatrzymajmy się na chwilę i pomyślmy, jak będzie działa nasz kod, co trzeba zrobić i jakich funkcji użyć.
Więc podniesienie elementu, ma się odbyć po kliknięciu i przytrzymaniu lewego przycisku myszki. Będzie działać to tak, że kiedy klikamy na swój movieClip i przytrzymujemy, przenosimy go w dowolne miejsce na scenie oraz, klikamy jeszcze raz żeby movieClpi "upadł" i pozostał w tym miejscu.
Więc, będziemy potrzebowali funkcji która wykryje kiedy użytkownik kliknie i przytrzyma lew przycisk myszy na movieClipie. Musimy tą funkcje przypisać do tego movieClipu. Potrzebna będzie też funkcja która wykryje, kiedy użytkownik puści lewy przycisk myszy. Wtedy musimy zatrzymać dalsze przemieszczanie się movieClipu.

Piszemy!
5. Otwórz panel "actions"(F9) i napisz poniższy kod:
emotka.addEventListener(MouseEvent.MOUSE_DOWN, drag);

function drag(e:MouseEvent):void {
emotka.startDrag();
}

emotka.addEventListener(MouseEvent.MOUSE_UP, drop);
function drop(e:MouseEvent):void {
emotka.stopDrag();
}

Zaraz wytłumaczę Ci jak działa kod. Jeśli go skopiowałeś i wkleiłeś, to pamiętaj, że musisz zmienić słowo "emotka", na nazwę którą podałeś w polu "instance name". Inaczej kompilator zwróci Ci błąd.

emotka.addEventListener(MouseEvent.MOUSE_DOWN, drag);

Na początku dodajemy nasłuch do naszego MovieClipu za pomocą funkcji "addEventListener". W pierwszym parametrze tej funkcji musimy podać rodzaj zdarzenia. Piszemy Mouse Event(bo chodzi nam o zdarzenia związane z myszką) a następnie po znaku kropki wybieramy konkretny rodzaj zdarzenia. Wybieramy MOUSE_DOWN, czyli "mysz wciśnięta(przytrzymana)" czyli jest to zdarzenie kiedy klikasz i przytrzymujesz lewy przycisk myszy na tym MovieClipie. W kolejny argumencie podajemy nazwę funkcji która ma się wykonać, jeśli zdarzenie wystąpi(MovieClip zostanie naciśnięty myszką). Wpisujemy "drag". Oczywiście, żeby funkcja ta zadziałał trzeba ją napisać, zrobimy to niżej.
function drag(e:MouseEvent):void {
emotka.startDrag();
}

Na samym początku piszemy słowo "function" aby poinformować flasha, że piszemy funkcję. Dalej podajemy jej nazwę, musi być taka samą jaką podaliśmy w drugim argumencie funkcji "addEventListener" czyli wpisujemy "drag"(podnieś). Przekazujemy event do funkcji wpisując w nawiasach "e:MouseEvent" po słowie drag. Następnie wpisujemy znak ":" i napiszmy "void", ponieważ funkcja nie zwraca żadnej wartości. Otwieramy nawias klamrowy i wciskamy enter, aby przejść do nowej linij.
W nowej linij naszemu movieClipowi przypiszemy metodę "startDrag" która odpowiada za rozpoczęcie przenoszenia, nie musimy jej pisać ponieważ jest ona "wbudowana" w AS3.

Pozostała część kodu jest podobna, z tym że różni się rodzajem zdarzenia i posiada funkcję która kończy przenoszenie - stopDrag.
emotka.addEventListener(MouseEvent.MOUSE_UP, drop);

Swojemu movieClipowi po znaku kropki przypisujesz funkcję, która oczekuje(nasłuchuje) na zdarzenie, zdarzeniem tym jest "MouseEvent.MOUSE_UP", występuje ono gdy użytkownik puszcza lewy przycisk myszki. Kiedy już go puści to trzeba wskazać funkcję która ma się wykonać. Piszemy że funkcja ta nazywa się drag. Piszemy ją na niżej:
function drop(e:MouseEvent):void {
emotka.stopDrag();
}

Wszystko tak samo, z tym że funkcja nazywa się "drop" a w jej ciele(czyli wszystko pomiędzy "{ }" ) zamiast metody "startDrag", piszemy "stopDrag", która zatrzyma i puści nasz movieClip.

To wszytko, prosta a przydatna rzecz! mam nadzieję że się Wam przyda :P
Zobacz: [OUTCOME]

Użytkownik Jacked edytował ten post 18 styczeń 2011 - 23:35

Dołączona grafika
Bądź lepszy! Prowokuj wenę!

#2 Użytkownik nie jest zalogowany   bubel88 

  • ..Master of disaster..
  • PipPipPipPipPipPip
  • Grupa: RetiredStaff
  • Postów: 1912
  • UBP Points 4 (Przekaż)
  • Rejestracja: 30 listopad 06
  • Imię:Belzebub :p
  • Płeć:Mężczyzna
  • Skąd:Pomorze
  • Drużyna:brak
  • Pkt. Grafika:31
  • Pomógł:2
  • Wygranych:52
  • Przegranych:36:(

Napisano 20 styczeń 2011 - 13:04

Dzięki dobry tutas.

Może wreszcie trzeba będzie się zająć flashem

Więcej takich tutów :/
LastFM
Moje skromne DA

lalalalalalala


------------------
W razie potrzeby kontaktu proszę pisać do mnie na @ bądź gg

 

Udostępnij ten temat:


Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych

Oglądaj Filmy online i graj w Gry online| Horrory Komedie Forum komputerowe Forum graficzne Teledyski Kreskówki Filmy online