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
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
 
     
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.13 sekundy. Zapytań do SQL: 16