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
Dziwny problem
Autor Wiadomość
vanioch 
Przyjaciel


Wiek: 37
Dołączył: 27 Lut 2011
Posty: 49
Skąd: bydgoszcz
Wysłany: Sro 30 Lis, 2011 12:52   Dziwny problem

Cześć, robię prosty ruch po okręgu (czyli okręg motion to path), zaznaczam opcję odwróć bo chcę przeciwnie do ruchu wskazówek zegara, wszystko działa. Ale jeśli mam te 2 obiekty w duszku i wtedy zrobię ten ruch to ruch po okręgu to nie zamyka się do końca, w załączniku swish. Jestem w kropce bo mam dużo pozagłębianych w siebie movie clipów i bez sensu teraz wszystko rozgrupowywać. Jeśli zrobię natomiast (jak obiekty są w duszku) ten ruch zgodnie z zegarkiem ruch się bez problemu zamyka. Nie ma jakiejś opcji która odwróci już zrobiony ruch?
 
     
^shastaan 



Pomógł: 72 razy
Dołączył: 09 Gru 2007
Posty: 688
Skąd: Rzeszów
Wysłany: Sro 30 Lis, 2011 13:03   

Coś popultałeś. Przeniosłem - narzędziem subselection tool (A) - ostatnią pozycję w odpowiednie miejsce i działa.

Zrobiłem potem od nowa i też działa.
_________________
Prowadzę stacjonarne i zdalne szkolenia z grafiki, również ze SWiSH. Program ustalany indywidualnie w zależności od potrzeb klienta. Szczegóły na www.kreopka.pl
 
 
     
^Januszr 



Pomógł: 216 razy
Dołączył: 11 Maj 2005
Posty: 1854
Skąd: Stolyca od urodzenia
Wysłany: Sro 30 Lis, 2011 13:25   

Ruch zaczyna sięw dokładnie tym miejscu, w którym zrobiłeś. A dokonałeś tego poprzez kliknięcie na punkt końca ruchu podczas edycji (narzędziem MotionPathTool), co doprowadziło do wycięcia Vertexa oraz kawałka motion path. Wiem, bo sam na to się wkurzam bardzo często :P :P :P
Rozwiązania chyba nie ma (a może jest - klikanie z jakimś klawiszem)... ja staram się powiększyć maksymalnie a następnie kliknąć obok istniejących vertexów. A drzewiej było łatwiej...
_________________
Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
Ostatnio zmieniony przez Januszr Sro 30 Lis, 2011 13:26, w całości zmieniany 1 raz  
 
     
vanioch 
Przyjaciel


Wiek: 37
Dołączył: 27 Lut 2011
Posty: 49
Skąd: bydgoszcz
Wysłany: Sro 30 Lis, 2011 13:26   

OK dzia, problem rozwiązany
 
     
^shastaan 



Pomógł: 72 razy
Dołączył: 09 Gru 2007
Posty: 688
Skąd: Rzeszów
Wysłany: Sro 30 Lis, 2011 14:10   

Z ciekawości zapytam, po co wam do tego motion path tool?
_________________
Prowadzę stacjonarne i zdalne szkolenia z grafiki, również ze SWiSH. Program ustalany indywidualnie w zależności od potrzeb klienta. Szczegóły na www.kreopka.pl
 
 
     
espe1
Profesjonalista


Pomógł: 16 razy
Dołączył: 02 Lis 2011
Posty: 175
Skąd: łódzkie
Wysłany: Sro 30 Lis, 2011 15:19   

a nie lepiej:

Kod:

onSelfEvent (load) {
//ustawienie środka rotacji (elipsy)
centerX = 280;
centerY = 160;

//wysokość i szerokość rotacji (elipsy)
radiusX = 200;
radiusY = 100;

//szybkość rotacji
angle = 0.1;
speed = 0.1;

this.onEnterFrame = function() {
mc._x = centerX + radiusX*Math.cos(angle);   
mc._y = centerY + radiusY*Math.sin(angle);   
//- obr. w lewo, + obr. w prawo
angle -= speed;
}
}


gdzie:
mc - to nasze kółko, które ma się obracać po elipsie,
no i wszystkie parametry można szybko i łatwo zmienić
 
     
^Januszr 



Pomógł: 216 razy
Dołączył: 11 Maj 2005
Posty: 1854
Skąd: Stolyca od urodzenia
Wysłany: Sro 30 Lis, 2011 21:24   

Cytat:
Z ciekawości zapytam, po co wam do tego motion path tool?
do narysowania "pętelki" na końcu animacji/zmiany kawałka animacji.

Cytat:
a nie lepiej:

Tak lepiej :) i plik będzie mniejszy. Pytanie tylko, jak napisać równanie ruchu takie jak w załączniku?

Espe, twoja znajomość AS jest bardzo cenna i chętnie wykorzystałbym ją na własne potrzeby:)
Ale do tego, ważną, a nawet kluczową sprawą jest to, czy posiadasz nokię z symbianem? Kwestia jest taka, że nie ma oprogramowania na symbiana, które potrafi czytać videostream z kamer wifi - jednak to na inny wątek...
_________________
Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
 
     
espe1
Profesjonalista


Pomógł: 16 razy
Dołączył: 02 Lis 2011
Posty: 175
Skąd: łódzkie
Wysłany: Sro 30 Lis, 2011 23:54   

np. tak:


Kod:


onSelfEvent (load) {
x0 = _x;
y0 = _y;
tx = Math.random()*3000;
ty = Math.random()*3000;
vx = .06+ Math.random()*.02;
vy = .12+ Math.random()*.06;
ampX = (70+Math.random()*70)*_xscale/100;
ampY = (40+Math.random()*10)*_yscale/100;
onEnterFrame = function() {
_x = x0+Math.sin(tx+=vx)*ampX;
_y = y0+Math.sin(ty+=vy)*ampY;
dx = _x-oldX;
dy = _y-oldY;
_rotation = Math.atan2(dy, dx)/Math.PI*180; //można też dać: Math.random()
oldX = _x;
oldY = _y;
}
}


lub bardziej skomplikowane:

Kod:

onSelfEvent (load) {
    _x=0; _y=0;
function getx(radius,angle) {
        radians=Math.PI*angle/180;
        return radius * Math.cos(radians);
    }
    function gety(radius,angle) {
        radians=Math.PI*angle/180;
        return radius * Math.sin(radians);
    }
    bigRadTarget = 5+random(145);
    bigAngTarget = random(720)-360;
    smallRadTarget = 25+random(25);
    smallAngTarget = random(720)-360;
    xbase = 275;
    ybase = 200;
    bigRadius = 5+random(145);
    smallRadius = 2+random(48);
    bigAngle = random(720)-360;
    smallAngle = random(720)-360;
    bigaSpeed = 0;
    bigrSpeed = 0;
    smallaSpeed = 0;
    smallrSpeed = 0;
}
onSelfEvent (enterFrame) {
    //
    bigRdiff = bigRadTarget-bigRadius;
    if (bigRdiff>0) {
        if (bigrSpeed>=bigRdiff) {
            bigRadTarget = 5+random(145);
        } else {
            if (bigrSpeed<5) {
                bigrSpeed++;
            }
            bigRadius+=bigrSpeed;
        }
    } else {
        if (bigrSpeed<=bigRdiff) {
            bigRadTarget = 5+random(145);
        } else {
            if (bigrSpeed> -5) {
                bigrSpeed--;
            }
            bigRadius+=bigrSpeed;
        }
    }
    //
    smallRdiff = smallRadTarget-smallRadius;
    if (smallRdiff>0) {
        if (smallrSpeed>=smallRdiff) {
            smallRadTarget = 25+random(25);
        } else {
            if (smallrSpeed<2) {
                smallrSpeed++;
            }
            smallRadius+=smallrSpeed;
        }
    } else {
        if (smallrSpeed<=smallRdiff) {
            smallRadTarget = 25+random(25);
        } else {
            if (smallrSpeed> -2) {
                smallrSpeed--;
            }
            smallRadius+=smallrSpeed;
        }
    }
    // rotations
    bigAdiff = bigAngTarget-bigAngle;
    if (bigAdiff>0) {
        if (bigaSpeed>=bigAdiff) {
            bigAngTarget = random(720)-360;
        } else {
            if (bigaSpeed<5) {
                bigaSpeed++;
            }
            bigAngle+=bigaSpeed;
        }
    } else {
        if (bigaSpeed<=bigAdiff) {
            bigAngTarget = random(720)-360;
        } else {
            if (bigaSpeed> -5) {
                bigaSpeed--;
            }
            bigAngle+=bigaSpeed;
        }
    }
    //
    smallAdiff = smallAngTarget-smallAngle;
    if (smallAdiff>0) {
        if (smallaSpeed>=smallAdiff) {
            smallAngTarget = random(720)-360;
        } else {
            if (smallaSpeed<10) {
                smallaSpeed++;
            }
            smallAngle+=smallaSpeed;
        }
    } else {
        if (smallaSpeed<=smallAdiff) {
            smallAngTarget = random(720)-360;
        } else {
            if (smallaSpeed> -10) {
                smallaSpeed--;
            }
            smallAngle+=smallaSpeed;
        }
    }
    //
    xpos=getx(bigRadius,bigAngle)+getx(smallRadius,smallAngle);
    _x=xpos*550/400+xbase;
    _y=gety(bigRadius,bigAngle)+gety(smallRadius,smallAngle)+ybase;
}

onSelfEvent (enterFrame) {
                     _x = _x+0.7*(_parent.b01._x-_x);
                     _y = _y+0.7*(_parent.b01._y-_y);
                  }



Kiedyś zrobiłem poruszające się plemniki :-)

Tworzymy clipa i nazywamy go "plemnik" (oczywiście musimy sobie narysować plemnika)
Kod:

onSelfEvent (load) {
acceleration = 20; //można zmieniać
newpos = function(){
ranx = random(Stage.width);
rany = random(Stage.height);
};
newpos();
this.onEnterFrame = function(){
dx = ranx-this._x;
dy = rany-this._y;
ar = Math.atan2(dy,dx);
this._rotation = ar*180/Math.PI;
this._x += dx/acceleration;
this._y += dy/acceleration;
if (Math.abs(dx) < 1 || Math.abs(dy) < 1) {
newpos(); // move
}
}
}


A przed klipem dajemy:
Kod:


onSelfEvent (load) {
for (i=0; i<50; i++){ //ilość można zmieniać
duplicateMovieClip(plemnik, "plemnik"+i, i);
}
}


W komponentach swisha jest też latający motyl z możliwością obrotu

[ Dodano: Czw 01 Gru, 2011 10:08 ]
Dodam tylko, że do plemników można dodać funkcję zmiany koloru (random color):
Kod:

onSelfEvent(load){ //lub (enterFrame) - dynamiczna zmiana
r=Math.floor(Math.random()*255)
g=Math.floor(Math.random()*255)
b=Math.floor(Math.random()*255)
colourobj=new Color(this)
colourobj.setRGB(r << 16 | g << 8 | b)
}
 
     
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.32 sekundy. Zapytań do SQL: 14