|
SWiSH Forum
Forum użytkowników programów SWiSH
|
Operacje wsadowe na efektach (?) |
Autor |
Wiadomość |
figureliusz
Bywalec
Dołączył: 05 Gru 2011 Posty: 16 Skąd: Warszawa
|
Wysłany: Czw 16 Lut, 2012 09:39 Operacje wsadowe na efektach (?)
|
|
|
Witam, problem następujący (plik w załączeniu)
Napis pojawia się z kropli tuszu (movie clip, napis jako maska, wektory kropelek skalują się po kolei ze stałym interwałem klatkowym - każda na takim samym efekcie).
Efekt działa, problemy są następujące:
Powiedzmy, że chcę zmienić zbiorczo efekt każdej kropli tuszu (np. długość trwania czy akcelerację). Mogę zmienić jeden, zapisać pod inną nazwą i załadować do pozostałych - przy kilkunastu kropelkach do zrobienia, przy kilkudziesięciu - straszna robota, zwłaszcza, jak chciałbym wypróbować kilka wersji.
Czy można w jakiś sposób zmodyfikować zapisany efekt, aby zastosował się wszędzie, gdzie jest przypisany?
Problem nr 2.
W jaki sposób chytrze zmienić interwał, z jakim odpalają się efekty na kolejnych kroplach? Ustawione jest co 5 klatek ale powiedzmy, że chcę zmienić na co dwie albo co dziesięć - przesuwanie ręczne jest strasznie upierdliwe.
Podejrzewam, że da się to zrobić skryptowo ale tu niestety nawet jeszcze nie raczkuję.
Pewnie da się napisać skrypt, który powiela obiekt w N miejscach, pozycjach X,Y, z interwałem Z, z efektem E, który można zbiorczo modyfikować?
To chyba na przyszłość - problem pierwszy jest dla mnie istotniejszy. Będę wdzięczny za odpowiedź.
F |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Czw 16 Lut, 2012 13:33
|
|
|
Powielanie co x sekund (milisekund)
Kod: |
onFrame (1) {
howLong = setInterval(5000)
i = 1
function duplication(){
duplicateMovieClip(_root.mc,"mc"+i,_root.getNextHighestDepth())
i++
}
blah = setInterval(duplication, 10); //powielanie co 10 milisekund, wartość można zmieniać
}
onSelfEvent (enterFrame) {
mc._x+=20 //przesuwanie mc w prawo o 20 px
}
onFrame (300) { //usuwanie powielania np. po 300 klatkach - zwolnienie pamięci
clearInterval(blah);
} |
A twój efekt "inkdrop", to nic innego jak zwykłe skalowanie. Kod wstawiamy pod mc:
Kod: |
onSelfEvent (load) {
this._xscale=0
this._yscale=0
s=0
}
onSelfEvent (enterFrame) {
s++
this._xscale=s
this._yscale=s
if (s>300)
s=300
} |
A zamiast przesunięcia w poziomie (mc._x+=20), można dać ruch po sinusoidzie:
Kod: |
onFrame (1) {
counter = 0;
maxang = 70; //kąt
cwidth = 20; //wychylenie
acc = 0; //speed
}
onSelfEvent (enterFrame) {
counter++;
acc = Math.sin((counter*20)*Math.PI/180)+2;
if(acc < 3){
acc = 3;
}
mc._rotation = Math.sin(counter/cwidth)*maxang;
mc._x += acc*Math.cos(mc._rotation*Math.PI/180);
mc._y -= acc*Math.sin(mc._rotation*Math.PI/180);
} |
[ Dodano: Czw 16 Lut, 2012 14:48 ]
Ja się popiszesz, to otrzymasz coś takiego: |
|
|
|
|
figureliusz
Bywalec
Dołączył: 05 Gru 2011 Posty: 16 Skąd: Warszawa
|
Wysłany: Czw 16 Lut, 2012 15:41
|
|
|
Absolutne mistrzostwo świata - nic nie rozumiem.
Nie ma wyjścia, albo zrozumiem podstawy pisania skryptów albo będę się bawił ręcznie.
Dziękuję i pozdrawiam |
|
|
|
|
|
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
|
|
|
|
|
|
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.08 sekundy. Zapytań do SQL: 12 |
|
|