|
SWiSH Forum Forum użytkowników programów SWiSH |
 |
SWiSH Max - Ruch paska
Krzychu - Nie 23 Paź, 2005 18:09 Temat postu: Ruch paska Witam
moj problem wyglada nastepujaco, chce zrobic cos takiego jak na stronie www.dudson.pl tzn ze poszczeglone dzialy sa na pasku ktory sie przesuwa, cos tam w wolnej chwili grzebalem jednak nigdy nie moglo wyjsc mi tak zeby dzialalo to elastycznie, tzn ze gdy wcisne przycisk np 5 to przesunie sie to o 5 dzialow, jak przycisk 3 to wroci te dwa dzialy, cos mi sie tam blokowalo i juz nie mialem do tego ani sily ani checi :/
moze ktos wie jak to zrobic? i przedstawilby mi krotki przyklad na jedno przesuniecie, dalej sobie poradze..
lemondude - Pon 24 Paź, 2005 09:09
Witka,
Sprawa jest dość prosta. Podstawą jest złożenie paska czy też innego obiektu który będzie przewijany i określenie dla każdej pozycji finalnej współrzędnych x i y. Oczywiście, ponieważ pokazywana ma być tylko część całosci, ograniczasz pasek z lewej i prawej strony (lub poprostu tworzysz okienko) poprzez maskowanie, lub nałożenie obiektów przykrywających marginesy (w tym wypadku poprostu obiekty te powinny być nad "paskiem" w polu outline, tzn. na wyższej warstwie).
Następnie tworzysz jakiś pusty sprite, nie zawierający żadnego obiektu. I wklepujesz skrypt:
Kod: |
onFrame (1,afterPlacedObjectEvents) {
stop();
}
onFrame (2,afterPlacedObjectEvents) {
tellTarget (pasek) {
_x -= x1;
_x *= 0.6;
_x += x1;
_y -= y1;
_y *= 0.6;
_y += y1;
}
}
|
Następnie powielasz ten kod na innych klatkach (3-4,5-6,7-8 etc.) dla innych wartości x i y, gdzie każda z nich to okreslona wcześniej współżędna końcowego położenia paska.
Parametr określony tu przeze mnie jako 0,6 to nic innego jak easing, tzn. jak szybko wykonany bedzie ruch oraz jak gwałtownie będzie przyspieszał i hamował.
Skrypt ten to poprostu zdefiniowanie ruchu z dowolnej współrzędnej na określoną przez xn,yn pozycję. Po ukończeniu definiowania ruchów i pozycji paska, podpinasz pod buttony ten sprite. Tzn. odpalasz odpowiednią klatkę na naciśnięcie buttona. Sprite zapętla się wykonując ruch.
Dlaczego nie narysować tego ruchu na timeline? Ponieważ na timeline musiałbyś napisać ruch z każdej współrzędnej na każdą. Czyli przy 4 pozycjach miał byś chyba 16 ruchów (nigdy nie byłem dobry z kombinatoryki).
Pozdrawiam,
Lemon
Krzychu - Pon 24 Paź, 2005 13:36
wlasnie ja probowalem to zrobic na timeline i chyba nie rozwiazalem wszystkich mozliwosci dlatego sie blokowalo..
kurcze ja wszystko rozumiem tylko generalnie swisha nie mam rozgryznietego, moglbys zalaczyc plik z przykladem? to mi wiele pomoze
lemondude - Sro 26 Paź, 2005 22:46
Witka,
Pasek w załączniku.
Pozdr,
Lemon
Krzychu - Czw 27 Paź, 2005 15:12
dziekuje bardzo
|
|