Hi, ich hab ein Problem... ich mach grad ein Spiel und ich es werden einige Childs nicht entfernt... könnt ihr mir helfen?
Im Speziellen geht es um das Disaster ab 403 und die beiden in 470. Könnt ihr mir helfen? Fehlermeldung:
PHP-Code:
ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
at flash.display::DisplayObjectContainer/removeChild()
at MethodInfo-557()
Mir ist schon klar, dass der (wer auch immer) irgendwie nicht drauf zugreifen kann, weil die in der anderen Funktion aufgerufen worden sind, aber wie schaff ich denn das zu umgehen?
PHP-Code:
import flash.events.Event;
import flash.events.MouseEvent;
import flash.sampler.NewObjectSample;
stop();
// Variablen festlegen
var richtungX:int = 1;
var richtungY:int = 1;
var speed:Number = 5;
var hits:Number = 0;
var strafe:int = -5;
var startkugel_instanz:startkugel = new startkugel();
// Paddles anlegen, aber noch nicht auf Bühne packen
// mauspaddle fuer LINKS / RECHTS
var mauspaddle_instanz:mauspaddle = new mauspaddle();
// mauspaddle_instanz fuer OBEN / UNTEN
var mauspaddleou_instanz:mauspaddleou = new mauspaddleou();
//tastaturpaddle für LINKS / RECHTS
var tastaturpaddlelire_instanz:tastaturpaddlelire = new tastaturpaddlelire();
//tastaturpaddle für OBEN / UNTEN
var tastaturpaddleou_instanz:tastaturpaddleou = new tastaturpaddleou();
// Anzeige für Geschwindigkeit auf Screen -> wird überdeckt, wenn Pause ist
stage.addEventListener(Event.ENTER_FRAME, Geschwindigkeitsanzeige);
function Geschwindigkeitsanzeige(evt:Event)
{
speed_txt.text = "Geschwindigkeit: " + String(speed);
}
// Sounds initialisieren
var poksound:pok = new pok();
var poksoundchannel:SoundChannel = poksound.play();
var saegensound:saegen = new saegen();
var saegensoundchannel:SoundChannel = saegensound.play();
// Kontrolle von Tastaturpaddles
stage.addEventListener(KeyboardEvent.KEY_DOWN, statusKeyDown);
function statusKeyDown(evt:KeyboardEvent)
{
if (evt.keyCode == Keyboard.LEFT)
{
trace("Pfeil links");
tastaturpaddlelire_instanz.x = tastaturpaddlelire_instanz.x - 50;
}
else if (evt.keyCode==Keyboard.RIGHT)
{
trace("Pfeil rechts");
tastaturpaddlelire_instanz.x = tastaturpaddlelire_instanz.x + 50;
}
else if (evt.keyCode==Keyboard.DOWN)
{
trace("Pfeil unten");
tastaturpaddleou_instanz.y = tastaturpaddleou_instanz.y + 40;
}
else if (evt.keyCode==Keyboard.UP)
{
trace("Pfeil unten");
tastaturpaddleou_instanz.y = tastaturpaddleou_instanz.y - 50;
}
else if (speed <= 0)
{
speed = 0;
}
}
// Kontrolle von Mauspaddles
stage.addEventListener(MouseEvent.MOUSE_MOVE, mausbewegen);
function mausbewegen(evt:MouseEvent)
{
mauspaddle_instanz.x = stage.mouseX;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, mausbewegen2);
function mausbewegen2(evt:MouseEvent)
{
mauspaddleou_instanz.y = stage.mouseY;
}
// STARTSCREEN
var holzhintergrund_instanz:holzhintergrund = new holzhintergrund();
addChild(holzhintergrund_instanz);
holzhintergrund_instanz.x = 0;
holzhintergrund_instanz.y = 0;
var weiss_instanz:weiss = new weiss();
addChild(weiss_instanz);
weiss_instanz.x = 105;
weiss_instanz.y = 80;
var starttext_instanz:starttext = new starttext();
addChild(starttext_instanz);
starttext_instanz.x = 100;// unter vorbehalt
starttext_instanz.y = 100;// unter vorbehalt
// Startbutton anlegen
var startbutton_instanz:startbutton = new startbutton();
addChild(startbutton_instanz);
startbutton_instanz.x = 400;// unter vorbehalt
startbutton_instanz.y = 530;// unter vorbehalt
// Startbutton aktivieren
startbutton_instanz.addEventListener(MouseEvent.CLICK, level1);
startbutton_instanz.addEventListener(MouseEvent.CLICK, buehneleeren1);
// Bühne aufräumen;
function buehneleeren1(evt:MouseEvent):void
{
removeChild(holzhintergrund_instanz);
removeChild(weiss_instanz);
removeChild(starttext_instanz);
removeChild(startbutton_instanz);
}
// Ende Startscreen
// LEVEL 1 initiieren
function level1(evt:MouseEvent):void
{
trace("Level 1");
speed = 0;
// Startbutton (Problem nochnicht behoben: Paddle lässt sich erst bewegen, wenn mit Maus auf Bühne geklickt wurde)
addChild(startkugel_instanz);
startkugel_instanz.x = 400;
startkugel_instanz.y = 100;
startkugel_instanz.addEventListener(MouseEvent.CLICK, startkugelfunktion);
function startkugelfunktion(evt:MouseEvent):void
{
speed = 5;
removeChild(startkugel_instanz);
}
//
// holzkugel auf Bühne bringen
var holzkugel_instanz:holzkugel = new holzkugel();
addChild(holzkugel_instanz);
holzkugel_instanz.x = 400;
holzkugel_instanz.y = 320;
//tastaturpaddle für LINKS / RECHTS auf die Bühne bringen
// schon oben festgelegt var tastaturpaddlelire_instanz:tastaturpaddlelire = new tastaturpaddlelire();
addChild(tastaturpaddlelire_instanz);
tastaturpaddlelire_instanz.x = 400;
tastaturpaddlelire_instanz.y = 510;
// LOOSE Begrenzung unten
var begrenzung_unten_loose:begrenzung_loose = new begrenzung_loose();
addChild(begrenzung_unten_loose);
begrenzung_unten_loose.x = 0;
begrenzung_unten_loose.y = 640;
begrenzung_unten_loose.height = 1;
// Begrezungsrahmen für ABPRALLEN auf die Bühne bringen (oben + links + rechts)
var begrenzung_oben_abprallen:begrenzung_abprallen = new begrenzung_abprallen();
addChild(begrenzung_oben_abprallen);
begrenzung_oben_abprallen.x = 1;
begrenzung_oben_abprallen.y = 1;
begrenzung_oben_abprallen.height = 1;
var begrenzung_links_abprallen:begrenzung_abprallen = new begrenzung_abprallen();
addChild(begrenzung_links_abprallen);
begrenzung_links_abprallen.x = 1;
begrenzung_links_abprallen.y = 1;
begrenzung_links_abprallen.rotation = 90;
begrenzung_links_abprallen.height = 1;
var begrenzung_rechts_abprallen:begrenzung_abprallen = new begrenzung_abprallen();
addChild(begrenzung_rechts_abprallen);
begrenzung_rechts_abprallen.x = 799;
begrenzung_rechts_abprallen.y = 1;
begrenzung_rechts_abprallen.rotation = 90;
begrenzung_rechts_abprallen.height = 1;
// Kreissägen unten
var kreissaege_instanz1:kreissaege = new kreissaege();
addChild(kreissaege_instanz1);
kreissaege_instanz1.x = 100;
kreissaege_instanz1.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation1);
function kreissaegerotation1(e:Event)
{
kreissaege_instanz1.rotation += -1;
}
var kreissaege_instanz2:kreissaege = new kreissaege();
addChild(kreissaege_instanz2);
kreissaege_instanz2.x = 300;
kreissaege_instanz2.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation2);
function kreissaegerotation2(e:Event)
{
kreissaege_instanz2.rotation += -2;
}
var kreissaege_instanz3:kreissaege = new kreissaege();
addChild(kreissaege_instanz3);
kreissaege_instanz3.x = 500;
kreissaege_instanz3.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation3);
function kreissaegerotation3(e:Event)
{
kreissaege_instanz3.rotation += -3;
}
var kreissaege_instanz4:kreissaege = new kreissaege();
addChild(kreissaege_instanz4);
kreissaege_instanz4.x = 700;
kreissaege_instanz4.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation4);
function kreissaegerotation4(e:Event)
{
kreissaege_instanz4.rotation += -2;
}
// Verschwinden von Paddles verhindern
stage.addEventListener(Event.ENTER_FRAME, balkenbremselire);
function balkenbremselire(evt:Event)
{
if (tastaturpaddlelire_instanz.x <= 0)
{
trace(tastaturpaddlelire_instanz.x);
tastaturpaddlelire_instanz.x = 0;
}
else if (tastaturpaddlelire_instanz.x >= 620)
{
trace(tastaturpaddlelire_instanz.x);
tastaturpaddlelire_instanz.x = 620;
}
}
// HITTEST Mit Tastaturpaddle LINKS / RECHTS
holzkugel_instanz.addEventListener(Event.ENTER_FRAME, koordinaten);
function koordinaten(evt:Event)
{
if (holzkugel_instanz.hitTestObject(tastaturpaddlelire_instanz))
{
if (richtungY == 1)
{
trace(holzkugel_instanz.hitTestObject(tastaturpaddlelire_instanz));
richtungY = -1;
poksoundchannel = poksound.play();
hits = hits + 1;
speed = speed + 1;
trace("hits = " + hits);
trace("speed = " + speed);
}
}
holzkugel_instanz.x += speed * richtungX;
holzkugel_instanz.y += speed * richtungY;
}
// HITTEST mit LOOSE unten
stage.addEventListener(Event.ENTER_FRAME, loose_unten);
function loose_unten(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_unten_loose))
{
trace("looser unten!");
richtungY = -1;
saegensoundchannel = saegensound.play();
speed = 5;
hits = 0;
}
hits_txt.text = "Punkte: " + String(hits);
}
// HITTESTS mit ABPRALLEN-Begrenzungen oben + links + rechts
stage.addEventListener(Event.ENTER_FRAME, abprallen_oben);
function abprallen_oben(evt:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_oben_abprallen))
{
trace("abprallen oben!");
richtungY = 1;
poksoundchannel = poksound.play();
hits_txt.text = "Punkte: " + String(hits);
}
}
stage.addEventListener(Event.ENTER_FRAME, abprallen_links);
function abprallen_links(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_links_abprallen))
{
trace("abprallen links!");
richtungX = 1;
poksoundchannel = poksound.play();
}
hits_txt.text = "Punkte: " + String(hits);
}
stage.addEventListener(Event.ENTER_FRAME, abprallen_rechts);
function abprallen_rechts(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_rechts_abprallen))
{
trace("abprallen rechts!");
richtungX = -1;
poksoundchannel = poksound.play();
}
hits_txt.text = "Punkte: " + String(hits);
}
// Level 1 beenden (Zwischenscreen zw. 1 und 2)
stage.addEventListener(Event.ENTER_FRAME, endelevel1);
function endelevel1(e:Event)
{
if (hits >= 1) // höher stellen wenn spiel fertig
{
// Bühne leer machen - funktioniert nicht richtig, Fehler ?!
/*ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein.
at flash.display::DisplayObjectContainer/removeChild()
at MethodInfo-557() */
removeChild(holzkugel_instanz);
removeChild(tastaturpaddlelire_instanz);
removeChild(begrenzung_unten_loose);
removeChild(begrenzung_oben_abprallen);
removeChild(begrenzung_links_abprallen);
removeChild(begrenzung_rechts_abprallen);
removeChild(kreissaege_instanz1);
removeChild(kreissaege_instanz2);
removeChild(kreissaege_instanz3);
removeChild(kreissaege_instanz4);
// Bühne wieder füllen
addChild(holzhintergrund_instanz);
holzhintergrund_instanz.x = 0;
holzhintergrund_instanz.y = 0;
addChild(weiss_instanz);
weiss_instanz.x = 105;
weiss_instanz.y = 80;
var level1zu2text_instanz = new level1zu2text();
addChild(level1zu2text_instanz);
level1zu2text_instanz.x = 100;
level1zu2text_instanz.y = 100;
// weiterbutton anlegen
var level1zu2button_instanz:level1zu2button = new level1zu2button();
addChild(level1zu2button_instanz);
level1zu2button_instanz.x = 400;
level1zu2button_instanz.y = 300;
// weiter button aktivieren
level1zu2button_instanz.addEventListener(MouseEvent.CLICK, level2);
}
}
}///////////////////// Ende Level 1
// BEGINN LEVEL 2
function level2(evt:MouseEvent)
{
removeChild(holzhintergrund_instanz);
removeChild(weiss_instanz);
// Diese hier lassen sich nicht entfernen
//removeChild(level1zu2text_instanz);
//removeChild(level1zu2button_instanz);
trace("Level 1");
speed = 0;
// Startbutton, weil Bildschirm aktiviert werden muss
addChild(startkugel_instanz);
startkugel_instanz.x = 400;
startkugel_instanz.y = 100;
startkugel_instanz.addEventListener(MouseEvent.CLICK, startkugelfunktion);
function startkugelfunktion(evt:MouseEvent):void
{
speed = 5;
removeChild(startkugel_instanz);
}
//
// holzkugel auf Bühne bringen
var holzkugel_instanz:holzkugel = new holzkugel();
addChild(holzkugel_instanz);
holzkugel_instanz.x = 400;
holzkugel_instanz.y = 320;
//tastaturpaddle für LINKS / RECHTS auf die Bühne bringen
// schon oben festgelegt var tastaturpaddlelire_instanz:tastaturpaddlelire = new tastaturpaddlelire();
addChild(tastaturpaddlelire_instanz);
tastaturpaddlelire_instanz.x = 400;
tastaturpaddlelire_instanz.y = 510;
// Kontrolle von Mauspaddle LINKS / RECHTS
stage.addEventListener(MouseEvent.MOUSE_MOVE, mausbewegen);
function mausbewegen(evt:MouseEvent)
{
mauspaddle_instanz.x = stage.mouseX;
}
// LOOSE Begrenzung unten und oben
var begrenzung_unten_loose:begrenzung_loose = new begrenzung_loose();
addChild(begrenzung_unten_loose);
begrenzung_unten_loose.x = 0;
begrenzung_unten_loose.y = 640;
begrenzung_unten_loose.height = 1;
var begrenzung_oben_loose:begrenzung_loose = new begrenzung_loose();
addChild(begrenzung_oben_loose);
begrenzung_oben_loose.x = 0;
begrenzung_oben_loose.y = 640;
begrenzung_oben_loose.height = 1;
// Begrezungsrahmen für ABPRALLEN auf die Bühne bringen (links + rechts)
var begrenzung_links_abprallen:begrenzung_abprallen = new begrenzung_abprallen();
addChild(begrenzung_links_abprallen);
begrenzung_links_abprallen.x = 1;
begrenzung_links_abprallen.y = 1;
begrenzung_links_abprallen.rotation = 90;
begrenzung_links_abprallen.height = 1;
var begrenzung_rechts_abprallen:begrenzung_abprallen = new begrenzung_abprallen();
addChild(begrenzung_rechts_abprallen);
begrenzung_rechts_abprallen.x = 799;
begrenzung_rechts_abprallen.y = 1;
begrenzung_rechts_abprallen.rotation = 90;
begrenzung_rechts_abprallen.height = 1;
// Kreissägen unten
var kreissaege_instanz1:kreissaege = new kreissaege();
addChild(kreissaege_instanz1);
kreissaege_instanz1.x = 100;
kreissaege_instanz1.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation1);
function kreissaegerotation1(e:Event)
{
kreissaege_instanz1.rotation += -1;
}
var kreissaege_instanz2:kreissaege = new kreissaege();
addChild(kreissaege_instanz2);
kreissaege_instanz2.x = 300;
kreissaege_instanz2.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation2);
function kreissaegerotation2(e:Event)
{
kreissaege_instanz2.rotation += -2;
}
var kreissaege_instanz3:kreissaege = new kreissaege();
addChild(kreissaege_instanz3);
kreissaege_instanz3.x = 500;
kreissaege_instanz3.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation3);
function kreissaegerotation3(e:Event)
{
kreissaege_instanz3.rotation += -3;
}
var kreissaege_instanz4:kreissaege = new kreissaege();
addChild(kreissaege_instanz4);
kreissaege_instanz4.x = 700;
kreissaege_instanz4.y = 670;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation4);
function kreissaegerotation4(e:Event)
{
kreissaege_instanz4.rotation += -2;
}
// Kreissägen oben
var kreissaege_instanz5:kreissaege = new kreissaege();
addChild(kreissaege_instanz5);
kreissaege_instanz5.x = 100;
kreissaege_instanz5.y = -30;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation5);
function kreissaegerotation5(e:Event)
{// e.target is the reference to the MovieClip calling the event
kreissaege_instanz5.rotation += -1;
}
var kreissaege_instanz6:kreissaege = new kreissaege();
addChild(kreissaege_instanz6);
kreissaege_instanz6.x = 300;
kreissaege_instanz6.y = -30;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation6);
function kreissaegerotation6(e:Event)
{
kreissaege_instanz6.rotation += -2;
}
var kreissaege_instanz7:kreissaege = new kreissaege();
addChild(kreissaege_instanz7);
kreissaege_instanz7.x = 500;
kreissaege_instanz7.y = -30;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation7);
function kreissaegerotation7(e:Event)
{
kreissaege_instanz7.rotation += -3;
}
var kreissaege_instanz8:kreissaege = new kreissaege();
addChild(kreissaege_instanz8);
kreissaege_instanz8.x = 700;
kreissaege_instanz8.y = -30;
stage.addEventListener(Event.ENTER_FRAME, kreissaegerotation8);
function kreissaegerotation8(e:Event)
{
kreissaege_instanz8.rotation += -2;
}
// Verschwinden von Paddles verhindern
stage.addEventListener(Event.ENTER_FRAME, balkenbremselire);
function balkenbremselire(evt:Event)
{
if (tastaturpaddlelire_instanz.x <= 0)
{
trace(tastaturpaddlelire_instanz.x);
tastaturpaddlelire_instanz.x = 0;
}
else if (tastaturpaddlelire_instanz.x >= 620)
{
trace(tastaturpaddlelire_instanz.x);
tastaturpaddlelire_instanz.x = 620;
}
}
stage.addEventListener(Event.ENTER_FRAME, balkenbremsemaus);
function balkenbremsemaus(evt:Event)
{
if (mauspaddle_instanz.x <= 0)
{
trace(mauspaddle_instanz.x);
mauspaddle_instanz.x = 0;
}
else if (mauspaddle_instanz.x >= 620)
{
trace(mauspaddle_instanz.x);
mauspaddle_instanz.x = 620;
}
}
// HITTEST Mit Tastaturpaddle LINKS / RECHTS
holzkugel_instanz.addEventListener(Event.ENTER_FRAME, koordinaten);
function koordinaten(evt:Event)
{
if (holzkugel_instanz.hitTestObject(tastaturpaddlelire_instanz))
{
if (richtungY == 1)
{
trace(holzkugel_instanz.hitTestObject(tastaturpaddlelire_instanz));
richtungY = -1;
poksoundchannel = poksound.play();
hits = hits + 1;
speed = speed + 1;
trace("hits = " + hits);
trace("speed = " + speed);
}
}
holzkugel_instanz.x += speed * richtungX;
holzkugel_instanz.y += speed * richtungY;
}
// HITTEST mit LOOSE unten und oben
stage.addEventListener(Event.ENTER_FRAME, loose_unten);
function loose_unten(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_unten_loose))
{
trace("looser unten!");
richtungY = -1;
saegensoundchannel = saegensound.play();
speed = 5;
hits = 0;
}
hits_txt.text = "Punkte: " + String(hits);
}
stage.addEventListener(Event.ENTER_FRAME, loose_oben);
function loose_oben(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_oben_loose))
{
trace("looser oben!");
richtungY = -1;
saegensoundchannel = saegensound.play();
speed = 5;
hits = 0;
}
hits_txt.text = "Punkte: " + String(hits);
}
// HITTESTS mit ABPRALLEN-Begrenzungen oben + links + rechts
stage.addEventListener(Event.ENTER_FRAME, abprallen_links);
function abprallen_links(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_links_abprallen))
{
trace("abprallen links!");
richtungX = 1;
poksoundchannel = poksound.play();
}
hits_txt.text = "Punkte: " + String(hits);
}
stage.addEventListener(Event.ENTER_FRAME, abprallen_rechts);
function abprallen_rechts(e:Event)
{
if (holzkugel_instanz.hitTestObject(begrenzung_rechts_abprallen))
{
trace("abprallen rechts!");
richtungX = -1;
poksoundchannel = poksound.play();
}
hits_txt.text = "Punkte: " + String(hits);
}
}