|   | 
								SWiSH Forum Forum użytkowników programów SWiSH | 
								  | 
							 
						 
						 
						
						Skrypty do programu SWiSH2 i SWISHmax - [Swish Max 2] Mouse Dragging 
						
												 Jaszczompek - Wto 08 Gru, 2009 07:07 Temat postu: [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;  }
 
 | 	  
												 augustym - Pią 18 Gru, 2009 09:12
 
    m moze pliczek swi do tego przykładu
 
 
pozdrawiam
												 Jaszczompek - 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 - 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 - 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 - Pią 18 Gru, 2009 18:51
  Skąd Ci się wzięło this._y ?
 
 
Ma być WIDTH czyli szerokość
												 Jaszczompek - 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 - 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)
												 
					 | 
				 
			 
		 |