Thread View: alt.pl.programy.flash-5
1 messages
1 total messages
Started by d.pamula
Fri, 03 Oct 2008 11:44
Usuwanie movieclip'u ze sceny
Author: d.pamula
Date: Fri, 03 Oct 2008 11:44
Date: Fri, 03 Oct 2008 11:44
77 lines
3879 bytes
3879 bytes
Witam, nie wiem czy we właściwym miejscu ten post ale może ktoś mi
pomoże.
W pierwszej klatce kluczowej umieszczam poniższy kodzik akcji:
ilosc_paskow = 30;
//oznacza ilość pionowych pasków masek
MovieClip.prototype.drawBox = function(kolor, x, y, w, h) {
//funkcja rysowania prostokąta w oparciu o kolor, pozycję i wymiary
this.beginFill(kolor, 100); //rozpocznij wypełnianie kształtu
kolorem
this.moveTo(x, y); //przesuń wskaźnik rysowania do punktu x i
y
this.lineTo(x+w, y);
this.lineTo(x+w, y+h);
this.lineTo(x, y+h);
this.lineTo(x, y);
this.endFill(); //zakończ wypełnianie kształtu
};
_root.createEmptyMovieClip('mask0', 2);
//stwórz klip filmowy o nazwie mask0
szerMaski = Math.ceil(flag0._width/ilosc_paskow);
//oblicz szerokość paska maski
mask0.drawBox(0, 10, 0, szerMaski+8, Stage.height);
//narysuj pierwszy pasek maski
mask0._x = flag0._x;
//przyciągnij poziomo lewy róg paska maski do flagi
mask0._y = 0;
//wyrównaj pasek maski w pionie
flag0.setMask(mask0);
//zamaskuj flagę maską w postaci paska
flagi = [];
//zdefiniuj tablicę adresów klipów filmowych flag
flagi[0] = flag0;
//zapisz adres flagi bazowej
zWarstwy = 100;
//określ wysokość bazową nowo tworzonych warstw flag i mask
for (i=1; i<ilosc_paskow; ++i) {
//pętla tworząca 20 flag i masek
var mc1 = flag0.duplicateMovieClip('flag'+i, zWarstwy+i*2,
{_x:flag0._x, _y:flag0._y});
//przypisz zmiennej mc1 adres nowej, sklonowanej flagi
var mc2 = mask0.duplicateMovieClip('mask'+i, zWarstwy+i*2+1,
{_x:flag0._x+i*szerMaski, _y:0});
//przypisz zmiennej mc2 adres nowej, sklonowanej maski
mc1.setMask(mc2);
//zamaskuj obecny klip flagi, klipem maski
flagi[i] = mc1;
//zapamiętaj kolejne adresy klipów flag w tablicy
}
flag0.onEnterFrame = function() {
//funkcja powtarzana 30 klatek/s dla flagi bazowej
for (var i = ilosc_paskow-1; i>0; --i) {
//pętla obracająca wszystkie wcześniej sklonowane flagi jednocześnie
flagi[i]._rotation = flagi[i-1]._rotation;
}
var t = getTimer();
//funkcja zwracająca milisekundy od początku trwania animacji
this._rotation = Math.sin(t*.001+Math.cos(t*.001)*Math.PI*2)*2;
//obracanie bazowej flagi flag0 płynnie w obu kierunkach
};
Powyższy kodzik "powoduje" animację flagi.
I teraz mam dwa problemy:
Pierwszy polega na tym że nie wiem jak zamknąć/usunąć ten clip ze
sceny po kliknięciu na klawisz, bądź przy przejściu do kolejnej klatki
kluczowej.
Używałem RemoveMovieClip ale nie bardzo mi to działa.
Drugi jak spowodować animację tej flagi w dół, tzn tak by prostokąt
nie był pocięty w pionie tylko w poziomie.
Jestem początkującym flash'owcem więc przepraszam za ewentualne
błędy.
Z góry dziękuje za odpowiedź.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads