actionscript 3 - I am Getting ArgumentError: Error #2025: -
here code . please can me. beginner .
giving me argumenterror: error #2025: supplied displayobject must child of caller. @ flash.display::displayobjectcontainer/removechild() @ final2_fla::maintimeline/loop() error
import flash.events.event; import flash.events.mouseevent; var kup:boolean = false; var kdn:boolean = false; var klt:boolean = false; var krt:boolean = false; var speedx:number = 0; var speedy:number = 0; var level:array=new array(); var scr:number = 0; var cn_arr:array = new array(); var score:number = 0; var rep:replay=new replay(); var player:player=new player(); addchild(player); player.x=200; player.y=250; //scoreboard.txt.text = score.tostring(); var camera = new rectangle(0,0,stage.stagewidth,stage.stageheight); var scoreboard:scoreboard = new scoreboard(); addchild(scoreboard); (var i:int = 0; i< numchildren; i++) { if (getchildat(i) platform) { level.push(getchildat(i).getrect(this)); //trace("ok"); } } (i = 0; i<numchildren; i++) { if (getchildat(i) cn ) { cn_arr.push(getchildat(i)); } } function initgame(e:event):void { stage.addeventlistener(keyboardevent.key_down, keypressed); stage.addeventlistener(keyboardevent.key_up, keyreleased); stage.addeventlistener(event.enter_frame, loop); } function keypressed(e:keyboardevent):void { //trace("pressed"); if (e.keycode == keyboard.a) { krt = true; //trace("krt"); } if (e.keycode == keyboard.space) { kup = true; //trace("jump"); } if (e.keycode == keyboard.d) { klt = true; //trace("krt"); } if (e.keycode == keyboard.s) { kdn = true; //trace("krt"); } } function keyreleased(e:keyboardevent):void { //trace("notpressed"); if (e.keycode == keyboard.a) { krt = false; //trace("unkrt"); } if (e.keycode == keyboard.space) { kup = false; //trace("unkyup"); } if (e.keycode == keyboard.d) { klt = false; //trace("unklt"); } if (e.keycode == keyboard.s) { kdn = false; //trace("unkdn"); } } stage.addeventlistener(event.enter_frame,initgame); function loop(e:event):void { if (krt) { speedx = -5; } else if (klt) { speedx = 5; } else { speedx *= 0.5; } player.x += speedx; (i=0; i<level.length; i++) { if (player.getrect(this).intersects(level[i])) { if (speedx> 0) { player.x = level[i].left - player.width / 2; } if (speedx < 0) { player.x = level[i].right + player.width / 2; } speedx = 0; } } var jumpable:boolean = false; speedy += 1; player.y += speedy; (i=0; i<level.length; i++) { if (player.getrect(this).intersects(level[i])) { if (speedy > 0) { player.y = level[i].top - player.height / 2; speedy = 0; jumpable = true; //player.gotoandstop("jump"); } if (speedy < 0) { player.y = level[i].bottom + player.height / 2; speedy *= -0.5; } } } (var j:int=0; j<cn_arr.length; j++) { if ((cn_arr[j]).hittestobject(player)) { removechild(cn_arr[j]); //removechild(cn_arr[j]); score += 2; //var a:string=scr.tostring(); scoreboard.txt.text = score.tostring(); //score.x=50; } } if (kup && jumpable) { speedy = -15; } if(player.hittestobject(ground)) { removechild(player); addchild(rep); rep.x=stage.stagewidth/2; rep.y=stage.stageheight/2; rep.btn_re.addeventlistener(mouseevent.click,oncl); function oncl(e:mouseevent):void { removechild(rep); addchild(player); player.x=166; player.y=205; } } scoreboard.x = camera.x + 280; scoreboard.y = camera.y + 370; /*trace(scoreboard.y + " score"); trace(camera.y);*/ camera.x = (player.x - camera.width+150); camera.y = (player.y - camera.height+250); if (camera.x >= 2000) { camera.x = 2000; } if (camera.x <= 0) { camera.x = 0; } if (camera.y >= 0) { camera.y = 0; } if (camera.y <= -610) { camera.y = -610; } scrollrect = camera; } enter code here
this error means child try remove not present in display list. everywhere use (for example) displayobject.removechild(child);
should first check if (displayobject.contains(child)) { // removal }
. fix error.
Comments
Post a Comment