[Swish Max 2] Mouse Dragging |
Autor |
Wiadomość |
Jaszczompek
Początkujący
Dołączył: 08 Gru 2009 Posty: 5 Skąd: Ostrołęka
|
Wysłany: Wto 08 Gru, 2009 07:07 [Swish Max 2] Mouse Dragging
|
|
|
Witam , przeczytałem na wstępie dział poświęcony skryptom ale nie potrafię sobie z tym poradzić. Jak zbudować skrypt który po najechaniu na kwadracik zacznie go przenosić , a jeśli wyjdę za obszar powiedzmy o 2-3px większy to go puści ?
Efekt znalazłem na pewnej stronce -> http://www.aquatorygroup.ru/flash/
Druga sprawa to idąc w kierunku uzyskania efektu jaki podałem w linku zrobiłem animacje przycisku i miga raz bardziej raz mniej widoczny , ale w momencie gdy najadę na niego akcja przestaje...
edit. Czy mógłby mnie chociarz ktoś nakierować ?
Algorytm:
Jeśli najadę złap za obiekt i przesuwaj z myszką ,
Jeśli przesunę ten obiekt o x+10 to puśc obiekt i umieść go tam gdzie był
Oczywiście to niżej nie działa , ale czy to w dobrą stronę wogóle idę ?
Kod: | onSelfEvent (rollOver)
{
startDrag(_target, false);
if( this._x == 100)
{
stopDrag();
this.move_x = 100;
this.move_y = 100;
}
} |
[ Dodano: Sro 16 Gru, 2009 09:14 ]
//Odświeżam
Znalazłem na forum że obiekt "spogląda" w kierunku kursora , dodałem efekt znikania... to nie jest efekt w pełni który chciałem uzyskać ale myślę krok po kroczku i coś wyjdzie Wypadało by tutaj dorzucić If który sprawdzi - jeżeli myszka zbliży się w okolicę np. 20px to wtedy to zaczyna działać , mogłby ktoś mi pomóc ?
Kod: |
onSelfEvent (enterFrame, includingFirstFrame)
{
Xm = _root._xmouse-this._x;
Ym = _root._ymouse-this._y;
kat = (Math.atan(Ym/Xm) * 180) / Math.PI;
kat += (_root._xmouse < this._x) ? 180 : 0;
_root.Kierunek._rotation = kat;
}
onSelfEvent(enterFrame, includingFirstFrame)
{ _1._alpha = 20; _2._alpha = 20; }
on (rollOver) {alpha = 100; }
on (rollOut) {alpha = 20; }
|
|
Ostatnio zmieniony przez Jaszczompek Pią 18 Gru, 2009 13:25, w całości zmieniany 2 razy |
|
|
|
|
augustym
Początkujący
Dołączył: 03 Lis 2009 Posty: 4 Skąd: Ciechocinek
|
Wysłany: Pią 18 Gru, 2009 09:12
|
|
|
m moze pliczek swi do tego przykładu
pozdrawiam |
_________________ MAIMAI.com.pl - Augustym |
|
|
|
|
Jaszczompek
Początkujący
Dołączył: 08 Gru 2009 Posty: 5 Skąd: Ostrołęka
|
Wysłany: Pią 18 Gru, 2009 13:22
|
|
|
Dodałem ale to nie jest to co chce osiągnac nie wiem w jakim kierunku isc , nie mam pomysłu a nikt nie chce pomoc póki co...
Wystarczyło by pewnie teraz popracować nad animacją , początkowa alphe na 20 dodać , i jak tu ustawić tego ifa żeby lapał dopiero po zbliżeniu się do obiektu |
|
|
|
|
Szymciosek
Ekspert
Pomógł: 22 razy Wiek: 32 Dołączył: 20 Lut 2009 Posty: 248 Skąd: Świdnica
|
Wysłany: Pią 18 Gru, 2009 13:47
|
|
|
Żeby wyłapało że mysz jest 10px od obiektu
Anchor Point ustawiony na center
if (_xmouse <= obj.x + obj.width / 2 + 10){
trace("10px na prawo);
}
Chyba dobrze, robię z pamięci, a obj to jakiś tam kwadrat np. |
|
|
|
|
Jaszczompek
Początkujący
Dołączył: 08 Gru 2009 Posty: 5 Skąd: Ostrołęka
|
Wysłany: Pią 18 Gru, 2009 18:41
|
|
|
to dodane jest w scripcie sprita Kierunek czyli twój obj to mój Kierunek, czyli w animacji this. zastępujemy
Kod: |
onSelfEvent (enterFrame, includingFirstFrame)
{
if (_xmouse <= this._x + this._y / 2 + 10)
{ trace("10px na prawo");
Xm = _root._xmouse-this._x;
Ym = _root._ymouse-this._y;
kat = (Math.atan(Ym/Xm) * 180) / Math.PI;
kat += (_root._xmouse < this._x) ? 180 : 0;
_root.Kierunek._rotation = kat;
}
else{trace("10px na lewo")}
}
|
dodałem sobie do sprawdzenia czy osiągnie lewo , ale coś nie wychodzi...
bo ten warunek to : Jeżeli myszka osiągnie na osi X wartość x.Kierunku i y.Kierunku to ? |
|
|
|
|
Szymciosek
Ekspert
Pomógł: 22 razy Wiek: 32 Dołączył: 20 Lut 2009 Posty: 248 Skąd: Świdnica
|
Wysłany: Pią 18 Gru, 2009 18:51
|
|
|
Skąd Ci się wzięło this._y ?
Ma być WIDTH czyli szerokość |
|
|
|
|
Jaszczompek
Początkujący
Dołączył: 08 Gru 2009 Posty: 5 Skąd: Ostrołęka
|
Wysłany: Pią 18 Gru, 2009 20:10
|
|
|
Znaczy złe skopiowałem , bo coś sprawdzałem ,
tylko powiedz mi co znaczy te 2+10 ? bo jak mam kwadracik sceny to nie działa tylko po wyjściu z lewej strony , dalej wszystko łapie zatem trzeba zmniejszyć pole działania |
|
|
|
|
Szymciosek
Ekspert
Pomógł: 22 razy Wiek: 32 Dołączył: 20 Lut 2009 Posty: 248 Skąd: Świdnica
|
Wysłany: Sob 19 Gru, 2009 08:54
|
|
|
obj.x + obj.width / 2 + 10
oblicza pole działania
od X obiektu (x to jest środek, zależy jak ustawisz)
do połowy szerokości obiektu (width / 2)
i do tego 10px zapasu (+10) |
|
|
|
|
|