Powerbalken mit getTimer ()

Teaser

Mitglied
Also ich versuche einen Powerbalken zu erstellen dessen Größe solange zunimmt, wie man einen Knopf drückt. Dazu hab ich folgendes erstellt:
1.Textfeld:startzeit
2.Textfeld:stoppzeit
In diesen Feldern lass ich mir die Start- und Stoppzeit des Knopf-drückens anzeigen. Das Funktioniert auch gut.
Ein Button mit folgendem Code:
Code:
on (press) {
	startzeit = getTimer ();
	_root.balken = true;
}
on (release) {
	stoppzeit = getTimer ();
	_root.balken = false;
}
Ein Movieclip der den Balken darstellen soll mit folgendem Code:
Code:
onClipEvent (load) {
	_xscale=1;
	breite = _xscale;
	if (_root.balken) {
		do {
			_root.breite = getTimer () - _root.startzeit;
		} while (breite<=100);
	}
}

Naja der Balken rührt sich einfach nicht. Wäre schön wenn mir jemand die Fehler aufzeigen könnte ich bin relativ unerfahren. Falls es eine andere einfachere Möglichkeit gibt das zu realisieren sagt es mir ruhig. Was ich noch nicht eingefügt habe ist das die größe des Balkens bzw, der Abstand zwischen startzeit und stoppzeit abgelesen und weiterverwendet werden soll.

Vielen Danke schon mal
 
Hi,

hmm, _root.breite - was soll das sein? Ich kann in Deinem Code keine Zeile sehen, in der die Breite des MovieClips tatsächlich verändert wird. Zudem würde ich keine while-Schleife verwenden, da diese in einem einzigen Frame (bevor das Bild gezeichnet wird) durchlaufen wird, bis die Bedingung zutrifft.

Ich nehme an _root.balken ist eine Variable und keine MovieClip-Instanz?

Es wäre gut, wenn Du die Datei einmal anhängen könntest, denn aus diesem Script kann ich nicht unbeding ersehen, was eigentlich passieren soll (und passiert).

Gruß
.
 
... indem Du sie z.B. in ein ZIP-Archiv verpackst. ;)

Gruß
.
P.S.: notfalls kannst Du die Dateiendung auch von .fla nach .txt ändern...
.
 
Hi,

also: onLoad wird natürlich nur einmal (beim Laden des Filmes) ausgeführt, daher passiert nichts, wenn Du den Button drückst. Zudem wird der _xscale-Eigenschaft des Balkens nirgendwo ein neuer Wert (außer 0 zu Beginn) zugewiesen - das musst Du schon periodisch erledigen. Du kannst das Script auf dem Balken z.B. so abändern:
PHP:
onClipEvent (load) {
    _xscale=1;
}

onClipEvent(enterFrame) {
    breite = (getTimer() - _root.startzeit) / 10; // nimm statt der 10 einen beliebigen Wert
    if (_root.balken == true  && breite <= 100) {
        this._xscale = breite;
    }
}
onEnterFrame wird periodisch mit jedem Bildaufruf ausgeführt.

Gruß
.
 
Zurück