Hi,
ich hab mich in den letzten Tagen mit Flash und AS3 beschäftigt und jetzt steh ich vor folgendem Problem:
Ich platziere zufällig auf meiner Bühne verschiedene Childs, die per Kolision mit meiner Hauptfigur von der Bühne wieder verschwinden. Soweit funktioniert das auch. Aber ich möchte außerdem, dass nach Ablauf eines Timers ein endsprechendes Outtro-Bild gezeigt wird. Problem hier: die vorher zufällig platzierten Objekte sind noch immer sichtbar. Per removeEventListener konnte ich zumindest verhindern, dass neue Objekte erzeugt werden. Jedoch weiß ich nicht, wie ich die bereits vorhandenen von der Bühne lösche. (Genauso verhält es sich mit meiner Figur, die ich nicht von der Bühne löschen kann und somit Fehlermeldungen bekomme.
Hier der Code:
Danke für eure Hilfe
ich hab mich in den letzten Tagen mit Flash und AS3 beschäftigt und jetzt steh ich vor folgendem Problem:
Ich platziere zufällig auf meiner Bühne verschiedene Childs, die per Kolision mit meiner Hauptfigur von der Bühne wieder verschwinden. Soweit funktioniert das auch. Aber ich möchte außerdem, dass nach Ablauf eines Timers ein endsprechendes Outtro-Bild gezeigt wird. Problem hier: die vorher zufällig platzierten Objekte sind noch immer sichtbar. Per removeEventListener konnte ich zumindest verhindern, dass neue Objekte erzeugt werden. Jedoch weiß ich nicht, wie ich die bereits vorhandenen von der Bühne lösche. (Genauso verhält es sich mit meiner Figur, die ich nicht von der Bühne löschen kann und somit Fehlermeldungen bekomme.
Hier der Code:
Code:
import flash.utils.Timer;
import flash.events.TimerEvent;
// ::::::: Variablen ::
var beweX:int = 0;
var beweY:int = 0;
var t_rot:Timer = new Timer (3000, 50);
var t_gruen:Timer = new Timer (8000, 50);
var myTimer:Timer = new Timer(1000, countZeit);
var points:int = 0;
var countZeit: int = 60;
var zeit:int = 180;
//*********************
// ::::::::: EVENTS ::
addEventListener(Event.ENTER_FRAME, bewegen);
stage.addEventListener(KeyboardEvent.KEY_DOWN, funktionsaufruf);
stage.addEventListener(KeyboardEvent.KEY_UP, stoppen);
myTimer.addEventListener(TimerEvent.TIMER, runOnce);
myTimer.start();
t_rot.addEventListener(TimerEvent.TIMER, anzeige_rot);
t_rot.start();
t_gruen.addEventListener(TimerEvent.TIMER, anzeige_gruen);
t_gruen.start();
//*********************
// Funktion zur Steuerung der Figur
function funktionsaufruf(evt:KeyboardEvent) {
if (evt.keyCode==Keyboard.RIGHT) {
beweX=5;
if (stehend_mc.currentFrame!= 2) {
stehend_mc.gotoAndStop(2);
}
}
if (evt.keyCode==Keyboard.LEFT) {
beweX=-5;
if (stehend_mc.currentFrame!= 3) {
stehend_mc.gotoAndStop(3);
}
}
if (evt.keyCode==Keyboard.DOWN) {
beweY=5;
if (stehend_mc.currentFrame!= 4) {
stehend_mc.gotoAndStop(4);
}
}
if (evt.keyCode==Keyboard.UP) {
beweY=-5;
if (stehend_mc.currentFrame!= 5) {
stehend_mc.gotoAndStop(5);
}
}
}
// *********************
// Funktion zur Erhöhung der Punktzahl
function zaehler(zahl:int) {
points = points + zahl;
trace(points);
}
//*********************
// Funktion zur Bewegung der Figur in verschiedene Richtungen
function bewegen(evt:Event) {
stehend_mc.x+=beweX;
stehend_mc.y+=beweY;
}
//*********************
// Funktion zum Anhalten der Figur
function stoppen(e:KeyboardEvent) {
beweX = 0;
beweY = 0;
stehend_mc.gotoAndStop(1);
}
//*********************
// Funktion zum Erzeugen der Objekte auf der Bühne
function anzeige_rot(evt:TimerEvent) {
var meineIns_rot:kreis = new kreis();
meineIns_rot.x = Math.random()*550;
meineIns_rot.y = Math.random()*400;
addChild(meineIns_rot);
}
function anzeige_gruen(evt:TimerEvent) {
var meineIns_gruen:kreis_gruen = new kreis_gruen();
meineIns_gruen.x = Math.random()*550;
meineIns_gruen.y = Math.random()*400;
addChild(meineIns_gruen);
}
//*********************
// Funktion zur Abfrage ob die Zeit abgelaufen ist
// und dann soll der Sprung zum Endbild kommen
function runOnce(event:TimerEvent):void {
countZeit = countZeit - 1;
zeit = (zeit - 3);
leben_mc.gotoAndStop(zeit);
trace("runOnce() called @ " + getTimer() + " ms");
if (countZeit <= 0) {
myTimer.removeEventListener(TimerEvent.TIMER, runOnce);
removeEventListener(Event.ENTER_FRAME, bewegen);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, funktionsaufruf);
stage.removeEventListener(KeyboardEvent.KEY_UP, stoppen);
t_rot.removeEventListener(TimerEvent.TIMER, anzeige_rot);
t_gruen.removeEventListener(TimerEvent.TIMER, anzeige_gruen);
if (points >= 0) {
gotoAndStop(4);
} else {
gotoAndStop(5);
}
}
}
// *********************
Danke für eure Hilfe
Zuletzt bearbeitet: