28. december 2001 - 20:00Der er
15 kommentarer og 1 løsning
duplicate movieclip....
movie dimention: 600x300px
jeg har et movie clip der laver noget farvelir når musen kører over. mit movieclip er 100x100px stort. jeg har så sidet og lavet en masse af disse movieclips..(dublicate movieclip), og lagt dem ud på min stage, og det virker som det skal...
kan dette scriptes, så jeg ikke skal sidde og gøre det selv, næste gang?
Hvis man har et movieClip på stage kan det kopieres lige så mange gange som du vil.
movieClippet skal have et instance navn ( skriv i instance panelet) lad mig antage at vi har kaldt det \"original_mc\" og at det befinder sig på hovedtidslinien
Når du vil have kopieret denne \"original_mc\" kalder du en action (knap eller frame eller mc)
antalKopier = 10;
for ( i = 0 ; i < antalKopier ; i++) { duplicateMovieClip(\"original_mc\",\"kopi\" + i,i+1); this[\"kopi\" + i]._x = this[\"original_mc\"]._x + ( i+1)*this[\"original_mc\"]._width; }
Du kan selv justere hvor de skal placeres, men denne action laver 10 kopier af din \"original_mc\" og placerer kopierne ved siden ad hinanden i x retningen (vandret).
Kopierne hedder i dette eksempel \"kopi0\", \"kop1i\", \"kop2i\", \"kopi3\", ... og bliver placeret i levels 1,2,3,...
Hvis dit originale mc er stort - mange informationer - kan det godt give visse problemer, da du forsøger at flytte et mc, der endnu ikke er loadet ind fuldstændigt... Er dette tilfældet, skal det scriptes på en lidt anden måde, men hvis det virker, så er ovenstående fint!
jeg ville, som du måske har set det før, have lavet disse actions ovenpå mit original_mc i stedet således:
onClipEvent(load) { if (_name eq \"original_mc\") { _root.vandret = 10 + _width; _root.lodret = 10 + _height; rows = 12; columns = 7; for (j=1; j<=rows; j++) { for (i=1; i<=columns; i++) this.duplicateMovieClip(\"kopi_\" add i add \"_\" add j, ++level); } } else { var s = _name.split(\"_\"); /* s laver et array over navnet, som for eksempel kan være \"kopi_3_6\", der så bliver et array som [\"kopi\",\"3\",\"6\"] _x = _parent.original_mc._x + int(s[1])*_root.vandret; _y = _parent.original_mc._y + int(s[2])*_root.lodret; } }
Jeg har ikke testet din action men mener at netop denne form kan medføre problemer da man ikke kan regne med at mc\'en er loadet. Desuden er jeg lidt i tvivl om denne form kopierer mc actionerne..Hvis den gør det betyder det jo at load actionerne gentages for hvert duplicateMovieClip() som medfører infinite loop, eller er jeg helt galt på den?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.