zeitverzögerung

redback79

Erfahrenes Mitglied
ich habe auf der bühne 9 movieclips platziert, die durch eine fade_in funktion eingeblendet werde. nun möchte ich, dass nicht alle gleichzeitig anfangen zu "faden", sondern möchte jedem einen bestimmten zeitpunkt zuweisen können wann dies geschehen soll.

gibt es da eine möglichkeit mit actionsript oder muss ich dafür die zeitleiste verwenden?


heir mein code..... bisher :)

PHP:
//positionierung der elemente 1-9
setProperty("m1", _x, 0);
setProperty("m1", _y, 0);
setProperty("m2", _x, "170");
setProperty("m2", _y, "0");
setProperty("m3", _x, "340");
setProperty("m3", _y, "0");
setProperty("m4", _x, 0);
setProperty("m4", _y, 170);
setProperty("m5", _x, "170");
setProperty("m5", _y, "170");
setProperty("m6", _x, "340");
setProperty("m6", _y, "170");
setProperty("m7", _x, "0");
setProperty("m7", _y, "340");
setProperty("m8", _x, "170");
setProperty("m8", _y, "340");
setProperty("m9", _x, "340");
setProperty("m9", _y, "340");

//alphawerte auf 0 setzen

m1._alpha = 0;
m2._alpha = 0;
m3._alpha = 0;
m4._alpha = 0;
m5._alpha = 0;
m6._alpha = 0;
m7._alpha = 0;
m8._alpha = 0;
m9._alpha = 0;

//fader funktion

function fade_in(mc) {
    if (_root[mc]._alpha<=100) {
        _root[mc]._alpha++;
    }
}
function fade_out(mc) {
    if (_root[mc]._alpha>=0) {
        _root[mc]._alpha--;
    }
}

// effektives fade_in

setInterval(fade_in, 25, "m1");
setInterval(fade_in, 25, "m2");
setInterval(fade_in, 25, "m3");
setInterval(fade_in, 25, "m4");
setInterval(fade_in, 25, "m5");
setInterval(fade_in, 25, "m6");
setInterval(fade_in, 25, "m7");
setInterval(fade_in, 25, "m8");
setInterval(fade_in, 25, "m9");

....wieder mit setInterval() nehme ich an.... aber wie verschachtle ich das ganze dann?
 
Zuletzt bearbeitet:
Hi,

benutzt du Flash MX?
Wenn ja, versuch das mal:
PHP:
anzahl = 10;
min = 100; // 100 ms
max = 1400; // 1 Sekunde

//positionierung der elemente 1-9
setProperty("m1", _x, 0);
setProperty("m1", _y, 0);
setProperty("m2", _x, "170");
setProperty("m2", _y, "0");
setProperty("m3", _x, "340");
setProperty("m3", _y, "0");
setProperty("m4", _x, 0);
setProperty("m4", _y, 170);
setProperty("m5", _x, "170");
setProperty("m5", _y, "170");
setProperty("m6", _x, "340");
setProperty("m6", _y, "170");
setProperty("m7", _x, "0");
setProperty("m7", _y, "340");
setProperty("m8", _x, "170");
setProperty("m8", _y, "340");
setProperty("m9", _x, "340");
setProperty("m9", _y, "340");


temp_ary = [];

this.onEnterFrame = function() {
	for(var i=1;i<anzahl;i++) {
		if(eval("m"+i)._alpha <= 100 && eval("m"+i).startT < getTimer()) {
			eval("m"+i)._alpha++;
		} else if(eval("m"+i)._alpha > 100) {
			temp_ary[i] = 1
			if(temp_ary.length == anzahl) {
				delete temp_ary;
				delete this.onEnterFrame;
			}
		} 
	}
}
 
Zuletzt bearbeitet:
erstens mal vielen dank für deine hilfe...

ich habe dein script ausprobiert und... leider faden meine movieclips immer noch gleichzeitig ein! :-(

ich stehe was actionsript anbelangt leider noch am anfang, bringe aber erfahrung in anderen scriptsprachen wie PHP mit.... ich habe also versucht deinen code zu entschlüsseln und mir scheint auch alles so weit klar zu sein bis auf die Zeile:

PHP:
if(eval("m"+i)._alpha <= 100 && eval("m"+i).startT < getTimer())


was bedeutet dabei "....startT"? ...und wofür sind die beiden variabeln "min" und "max", wenn sie später in der eigentlichen funktion nicht mehr aufgerufen werden?

tut mir leid, fragen über fragen.... :)



ps. FLASH MX!
 
Hups, da hab ich ausversehen die hälfte gelöscht:
PHP:
anzahl = 10;
min = 100; // 100 ms
max = 1800; // 1,8 Sekunde

for(i=1;i<anzahl;i++) {
	eval("m"+i)._alpha = 0;
	eval("m"+i).startT = getTimer()+random(max)+min;
}

//positionierung der elemente 1-9
setProperty("m1", _x, 0);
setProperty("m1", _y, 0);
setProperty("m2", _x, "170");
setProperty("m2", _y, "0");
setProperty("m3", _x, "340");
setProperty("m3", _y, "0");
setProperty("m4", _x, 0);
setProperty("m4", _y, 170);
setProperty("m5", _x, "170");
setProperty("m5", _y, "170");
setProperty("m6", _x, "340");
setProperty("m6", _y, "170");
setProperty("m7", _x, "0");
setProperty("m7", _y, "340");
setProperty("m8", _x, "170");
setProperty("m8", _y, "340");
setProperty("m9", _x, "340");
setProperty("m9", _y, "340");


temp_ary = [];

this.onEnterFrame = function() {
    for(var i=1;i<anzahl;i++) {
        if(eval("m"+i)._alpha <= 100 && eval("m"+i).startT < getTimer()) {
            eval("m"+i)._alpha++;
        } else if(eval("m"+i)._alpha > 100) {
            temp_ary[i] = 1
            if(temp_ary.length == anzahl) {
                delete temp_ary;
                delete this.onEnterFrame;
            }
        } 
    }
}
 
vielen dank!
du hast sogar schon meine nächste frage beantwortet... wie schaffe ich es, dass meine clips mit random erscheinen? ;-)

wenn du zeit hast, würde ich gerne noch ein paar erklärungen zum skript haben ...dass es läuft ist das eine, aber weshalb?... ;-)


vielen dank noch mal!
 
Ich versuchs mal:

eval("m"+i).startT = getTimer()+random(max)+min;

Mit eval kannst du dynamische Variablen erstellen. In dem Fall eine Instanz von deinen MCs.

getTimer() gibt die Anzahl der Millisekunden zurück, die seit dem Beginn der Wiedergabe des Films vergangen sind.

random(max) gibt eine Zahl zwischen 0 und max aus.

this.onEnterFrame wird kontinuierlich mit der Bildrate des Films aufgerufen.

Der Rest ist denke ich selbsterklärend? Wenn nicht, frag gern nocht mal nach.
 
ahhhhhhhhhhh! :)

vielen dank! ...nach "this.onEnterFrame " habe ich lange gesucht... :)

bei PHP wird das script immer lediglich von oben nach unten durchgearbeitet... wenn ich einer variable einen wert zuwies, dann blieb dieser bis zum nächsten aufruf im script konstant. (mit ein paar kleinen ausnahmen) mein grösstes problem bislang war es, mit den sich ständig verändernden werten (wie zB. der alphawert beim faden) realtime herankomme. "this.onEnterFrame" gibt mir also immer den aktuellen wert zurück! oder?

(ich hoffe ich lieg nicht ganz falsch mit meiner theorie!) :)

vielen dank nochmals!
 
ich habe diese funktion auf einen button gelegt. kann mir jemand sagen, weshalb meine movieclips nicht ausgeblendet werden?!
finde den fehler leider nicht....

PHP:
on (release) {
anzahl = 10;
min = 1000; // 100 ms
max = 2000; // 1,8 Sekunde

for(i=1;i<anzahl;i++) {
    eval("m"+i)._alpha = 100;
    eval("m"+i).startT = getTimer()+random(max)+min;
}

temp_ary = [];

this.onEnterFrame = function() {
    for(var i=1;i<anzahl;i++) {
        if(eval("m"+i)._alpha == 100 && eval("m"+i).startT < getTimer()) {
            eval("m"+i)._alpha--;
        } else if(eval("m"+i)._alpha <= 0) {
            temp_ary[i] = 1
            if(temp_ary.length == anzahl) {
                delete temp_ary;
                delete this.onEnterFrame;
            }
        } 
    }
}
}
 
Sorry, hab den Fehler doch noch gefunden...

PHP:
        if(eval("m"+i)._alpha > 0 && eval("m"+i).startT < getTimer()) {

...wäre richtig gewesen!


Gruss redback
 

Neue Beiträge

Zurück