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
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.
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)
} |
|
|
|
|
|
|