Diabolo
01.10.2007, 16:18
Hallo zusammen,
als Neueinsteiger in ActionScript auf Version 8.0 hab ich mich mal an folgendem probiert:
- 6 Textfelder stehen auf Bild1, Szene1 außerhalb des für den User sichtbaren Bereiches
- mit do...while() ändere ich die Position der Textfelder jeweils um 1 nach links
- Ziel ist es, einen Effekt zu erzielen, der aussieht als würde das Menü einfliegen
Dazu habe ich einen EventListener auf einen Button gesetzt. Bei Aufruf werden in der do...while-Schleife die Textfelder verschoben. Code:
import mx.controls.Alert;
var clickListener:Object = new Object();
clickListener.click = function(evt_obj:Object):Void{
trace(i);
txtMessage.text = "loading";
i=mnu1._x;
do {
CalculateX(i-1);
i = (i-1);
} while (i>50);
}
var moveListener:Object = new Object();
moveListener.move = function(evt_obj:Object):Void{
updateAfterEvent();
mnu1.redraw();
}
btnClick.addEventListener("click", clickListener);
//edit: die Funktion hatte ich vergessen einzufügen:
function CalculateX(intXNumber:Number) {
mnu1.move(intXNumber,mnu1._y);
mnu2.move(intXNumber,mnu2._y);
mnu3.move(intXNumber,mnu3._y);
mnu4.move(intXNumber,mnu4._y);
mnu5.move(intXNumber,mnu5._y);
mnu6.move(intXNumber,mnu6._y);
txtMessage.text = txtMessage.text + intXNumber + " "
return 0;
}
Leider wird die Schleife bis zum Ende durchlaufen, aber der Bildschirm nicht aktualisiert. Also von wegen einfliegen der Textfelder is nix.
Wie kann ich es erreichen, daß nach jedem Schleifendurchlauf der Bildschirm aktualisiert wird?
Mit .redraw() habe ich es bereits probiert.
Danke und viele Grüße,
Pascal
als Neueinsteiger in ActionScript auf Version 8.0 hab ich mich mal an folgendem probiert:
- 6 Textfelder stehen auf Bild1, Szene1 außerhalb des für den User sichtbaren Bereiches
- mit do...while() ändere ich die Position der Textfelder jeweils um 1 nach links
- Ziel ist es, einen Effekt zu erzielen, der aussieht als würde das Menü einfliegen
Dazu habe ich einen EventListener auf einen Button gesetzt. Bei Aufruf werden in der do...while-Schleife die Textfelder verschoben. Code:
import mx.controls.Alert;
var clickListener:Object = new Object();
clickListener.click = function(evt_obj:Object):Void{
trace(i);
txtMessage.text = "loading";
i=mnu1._x;
do {
CalculateX(i-1);
i = (i-1);
} while (i>50);
}
var moveListener:Object = new Object();
moveListener.move = function(evt_obj:Object):Void{
updateAfterEvent();
mnu1.redraw();
}
btnClick.addEventListener("click", clickListener);
//edit: die Funktion hatte ich vergessen einzufügen:
function CalculateX(intXNumber:Number) {
mnu1.move(intXNumber,mnu1._y);
mnu2.move(intXNumber,mnu2._y);
mnu3.move(intXNumber,mnu3._y);
mnu4.move(intXNumber,mnu4._y);
mnu5.move(intXNumber,mnu5._y);
mnu6.move(intXNumber,mnu6._y);
txtMessage.text = txtMessage.text + intXNumber + " "
return 0;
}
Leider wird die Schleife bis zum Ende durchlaufen, aber der Bildschirm nicht aktualisiert. Also von wegen einfliegen der Textfelder is nix.
Wie kann ich es erreichen, daß nach jedem Schleifendurchlauf der Bildschirm aktualisiert wird?
Mit .redraw() habe ich es bereits probiert.
Danke und viele Grüße,
Pascal