SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
[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 :P 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   

:oops: 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 :P 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)
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.11 sekundy. Zapytań do SQL: 16