Article View: alt.pl.programy.flash-5
Article #34601Usuwanie movieclip'u ze sceny
From: 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ź.
Technical Details
Message-ID:
<8419947b-e642-4082-bb88-a6140e9d0a0a@d45g2000hsc.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!d45g2000hsc.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!d45g2000hsc.googlegroups.com!not-for-mail From: d.pamula@wup.opole.pl Newsgroups: alt.pl.programy.flash-5 Subject: Usuwanie movieclip'u ze sceny Date: Fri, 3 Oct 2008 04:44:07 -0700 (PDT) Organization: http://groups.google.com Lines: 80 Message-ID: <8419947b-e642-4082-bb88-a6140e9d0a0a@d45g2000hsc.googlegroups.com> NNTP-Posting-Host: 217.197.71.252 Mime-Version: 1.0 X-Trace: posting.google.com 1223034248 17808 127.0.0.1 (3 Oct 2008 11:44:08 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 3 Oct 2008 11:44:08 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: d45g2000hsc.googlegroups.com; posting-host=217.197.71.252; posting-account=fIr2yAoAAADJmKPDx6hbSVzVTroAry5F User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit