PDA

Volledige versie bekijken : movieclips wegfaden


Bzil
%Europe/Berlin %441 %2005, 11:36
Hey,

Ik laat met as een veld vol lopen met gedupliceerde MC's ("staander")

Op frame 1:
duplicateMovieClip("staander", "staander" add x, x);
setProperty("staander" add x, _x, x);
x = Number(x)+16;
if (x>570) {
gotoAndPlay("stop");
}
Op frame 2
gotoAndPlay(1);

Dit scriptje doet wat ik wil, maar ben er niet van overtuigt dat het de beste manier is..
Ik wil nu alle gedupliceerde clips laten wegfaden of iig verdwijnen.
Maar krijg dit voorals nog niet voor elkaar..
Iemand een id?

Flasher
%Europe/Berlin %686 %2005, 17:28
//dit doet hetzelfde als jouw script
var x:Number = 1;
var aantalMCs:Number = 35
this.onEnterFrame = function() {
duplicateMovieClip(staander,"staander"+x,this.getNextHighestDepth());
this["staander"+x]._x = 16 * x
x++;
if(x>=aantalMCs) {
delete this.onEnterFrame;
}
}
//het gedeelte hieronder is om ze weg te laten faden (bij een druk op een knop)
fadeWeg_btn.onRelease = function() {
_root.onEnterFrame = function() {
for(i=1;i<=aantalMCs;i++) {
this["staander"+i]._alpha-= 10;
if(this["staander"+i]._alpha == 0) {
this["staander"+i]._visible = false;
delete _root.onEnterFrame;
}
}
}
}

Bzil
%Europe/Berlin %705 %2005, 17:56
Het lijkt er op dat ie de gedupliceerde MC's steeds vervangt zodat je steeds alleen het eerste frame van de mc ziet..

Heb ze ff online gezet.

test oud script (http://www.studiobasil.nl/staandertest.fla)
test nieuw script (http://www.studiobasil.nl/staandertest2.fla)

Mischien heb ik wel iets anders fout gedaan..

Gerrit55
%Europe/Berlin %763 %2005, 19:19
bovenvermelde code is allen geldig voor Flash MX 2004 (professionel) en zal niet werken in Flash MX :( :rolleyes:

Een duplicateMC werkt alleen als er al een MC met deze instancenaam in een MC staat, zo niet dan gebruik je AttachMC (in je libraray (CTRL+L) vink je bij properties Export for AS aan en geeft een linkagenaam).

op frame 1 van je hoofdtimeline (codes uit je mc verwijderen) zet je iets als:

var x = 1
var aantalMCs = 35;

witvlak.onEnterFrame = function() {
this.attachMovie("staander", "staander"+x, x);
this["staander"+x]._x = 16*x;
x++;
if (x>=aantalMCs) {
delete this.onEnterFrame;
}
}


in een MC gebruik je als 1e regel:
onClipEvent (enterFame)

Flasher
%Europe/Berlin %771 %2005, 19:30
verander dit:

duplicateMovieClip(staander,"staander"+x,this.getNextHighestDepth());

in dit:

duplicateMovieClip(staander,"staander"+x,x);

dan zou het moeten werken d8 ik :o

Bzil
%Europe/Berlin %813 %2005, 20:31
thanx!
Alleen lijkt ie nu eindeloos door te gaan..
In het oude script:
if (x>570) {
gotoAndPlay("stop");
}
waardoor ie op het goede moment stopte met dupliceren..

Bzil
%Europe/Berlin %513 %2005, 13:19
Heb het nu als volgt:

Voor het vollopen met de MC's:
var x = 1
var aantalMCs = 29;
onEnterFrame = function() {
this.attachMovie("staander", "staander"+x, x);
this["staander"+x]._x = 20*x;
x++;
if (x>=aantalMCs) {
delete this.onEnterFrame;
gotoAndPlay("stop");
}
}
stop();
}

Voor het weg-scalen (alpha vertraagde enorm)
this.onEnterFrame = function() {
for (i=1; i<=x; i++) {
this["staander"+i]._xScale -= 10;
if (this["staander"+i]._xScale == 0) {
removeMovieClip("staander"+i);
delete this.onEnterFrame;
gotoAndPlay("reset");
}
}
};
Reset frame:
x = 1;
gotoAndStop(1);


Het werkt precies zoals ik wil..
Als ik voor het weghalen _visible = false gebruik vertaagt de site enorm en kon ik het script niet herhalen..