PDA

Volledige versie bekijken : Opeenvolgend verschijnen van movieclips


gc_007
%Europe/Berlin %547 %2008, 13:08
Hallo
Ik probeer al even een serie movieclips sequentieel te laten verschijnen dmv van alpha tween, de movieclips worden gedupliceerd door een for-loop. De originele movieclip staat op de stage deze bevind zich in hl_mc en noemt bol_mc (3.2px * 3.2px). De bedoeling is dat alle 35 movieclips 1 voor 1 verschijnen. Momenteel verschijnen ze allen op hetzelfde moment.
hierzo de code for (var j:Number = 0; j<35;) {

var naam:String = "bol_" + j;

_root.hl_mc.bol_mc.duplicateMovieClip([naam], j);


_root.hl_mc[naam]._alpha = 0;

_root.hl_mc[naam]._y = (j * 7) - 3.2 ;

var vers:Tween = new Tween (_root.hl_mc[naam], "_alpha", None.easeOut, 0, 100,2, true);
if (_root[naam]._alpha === 100) {
trace ("100%")
}

j++

}

de meest logische oplossing leek mij (als leek) om j++ in de if statement te zetten of de if statement te vervangen door onMotionFinished, spijtig genoeg crasht flashplayer bij deze aanpasing :)
Alvast bedankt

Jan
%Europe/Berlin %148 %2008, 03:33
Zoals je het daar hebt staan is het een beetje messy code vind ik. :S :)

Voorbeeldje:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var aantal:Number=35;
var counter:Number=0;
//_________________________________________
for (var j:Number = 0; j<aantal; j++)
{
hl_mc.bol_mc.duplicateMovieClip("bol_" + j, hl_mc.getNextHighestDepth());
hl_mc["bol_" + j]._alpha = 0;
hl_mc["bol_" + j]._y = (j * 7) - 3.2 ;
}
//_________________________________________
function tweenen(seconds:Number)
{
var fadeOut:Tween = new Tween (hl_mc["bol_" + counter], "_alpha", None.easeOut, 100, 0, seconds, true);
var fadeIn :Tween = new Tween (hl_mc["bol_" + (counter+1)], "_alpha", None.easeOut, 0, 100, seconds, true);

if(counter==aantal)
{
counter=0;
}
else
{
counter++;
}
}
var tweenenI:Number=setInterval(tweenen,500,1);
//500 staat voor 500 milliseconden 'intervaltijd'
// 1 staat voor 1 seconde 'tweentijd'
//_________________________________________

Groeten,
Jan

mknol
%Europe/Berlin %367 %2008, 08:49
Wat soms ook van pas kan komen; Je kunt ook aan de Tween een onMotionFinished-functie toewijzen. Zo kun je gemakkelijker controleren of het 'klaar is' en evt. de volgende te starten.fadeOut.onMotionFinished = function() {
trace("klaar met faden: " + this)
};

gc_007
%Europe/Berlin %405 %2008, 09:43
bedankt voor de reply's!!
@andez: de code werkt perfect, hier en daar nog even wat aanpassingen gemaakt en het is precies zoals ik het wou!, ik was al aan het nadenken om setInterval te gebruiken maar wist niet goed hoe of waar, das dus opgelost! thx
@mknol: De onMotionFinished heb ik proberen te gebruiken maar wss op een verkeerde manier want men flashplayer crashte nogal vaak...