AS-Code für bildrate

jackassol

Erfahrenes Mitglied
Gibt es nen As-Code bzw ist es möglich einen movieclip..einen code zu zu weisen..der nur für diesen Movieclip die Bilder pro Sekunde bestimmt?
 
Hallo,

nein gibt es nicht. Du könntest allerdings einer onEnterFrame-Methode die Anweisung geben, nur jeden zweiten Event-Aufruf zu bearbeiten (z.B. einen nextFrame-Aufruf) und anhand davon die Framerate zu "halbieren".

gruss
 
naja, es gibt schon eine ziemlich gute möglichkeit, die ich ihn fast jedem film benutze (n muss).
du setzt in einer function eine variable worin du den timestamp speicherst.
dann überprüfst du in onEnterFrame ob der aktuelle timestamp > alterTimeStamp+zuVergehendeZeit ist, un wenn ja rufst du eine andre funktion auf, und die eigenen function auch :D
naja, so ungefär und da ich nich wirklich meister der erklärung bin hab ich hier lieber ma n beispiel ^^

ich mach das imma in etwa so:
PHP:
function timer(sec:Number,func:Function):Void { //sec = sekunden die zwischen den aufrufen vergehen soll, func = funktion die dann ausgeführt werden soll
	var aDT:Date = new Date();
	var aTS:Number = aDT.getTime() + (sec * 1000); //alterTimeStamp + ZeitZuWarten
	onEnterFrame = function() {
		var nDT:Date = new Date();
		var nTS:Number = nDT.getTime(); //neuerTimeStamp
		if(aTS < nTS) {
			func(arg);
			delete this.onEnterFrame;
			timer(sec,func);
		}
	}
}
timer(0.5,test,aga);
function test() { //funktion die aufgerufen wird
	trace("aufruf"); //aktionen
}
in die funktion die aufgerufen werden soll kannst du dann beispielsweise deinen mc ein frame weitergehn lassen!
das pack ich dann in nen mc un kann es dann ab dem 2ten frame in _root benutzten...

hoffe ich kann dir damit helfen :D

mfg
 
Alternativ kannst Du die Frames auch mit einem Interval in Kombination mit updateAfterEvent wechseln. Verschiebe Deine gesamte Animation um einen Frame nach rechts und füge folgendes Script in den (leeren) ersten Frame ein:
Code:
stop();

var iv = setInterval(this, "frameStep", 20); // Intervall in ms

function frameStep() {
	if (_currentframe < _totalframes) {
		nextFrame();
	} else {
		// wenn geloopt werden soll:
		gotoAndStop(2);
		// wenn angehalten werden soll:
		// clearInterval(iv);
	}
	updateAfterEvent();
}

Gruß
.
 
Zurück