2015-02-24 29 views
0

当我删除页面并添加另一个页面时,它显示此错误。它为什么这样做?它说,错误是位于行“parent.removeChild(主页)。错误#2025:提供的DisplayObject必须是调用者的子代AS3

function onPlayButtonsClick(event:MouseEvent):void 
    { 
     //var level1Page = new Level1Page; 
     parent.addChild(level1Page); 
     parent.removeChild(homePage); 
    } 

private function onKeyDown(event: KeyboardEvent): void 
    { 
     if (event.keyCode == Keyboard.A) 
     { 
      vx = -5; 
      side = true; 
     } 
     else if (event.keyCode == Keyboard.D) 
     { 
      vx = 5; 
      side = true; 
     } 
     else if (event.keyCode == Keyboard.W) 
     { 
      vy = -5; 
      up = true; 
     } 
     else if (event.keyCode == Keyboard.S) 
     { 
      vy = 5; 
      up = true; 
     } 
    } 

private function onKeyUp(event: KeyboardEvent): void 
    { 
     if (event.keyCode == Keyboard.A || event.keyCode == Keyboard.D) 
     { 
      vx = 0; 
      side = false; 
     } 
     else if (event.keyCode == Keyboard.S || event.keyCode == Keyboard.W) 
     { 
      vy = 0; 
      up = false; 
     } 
    } 

这是我的level1Page键盘事件的代码

回答

0

因为你homePage对象不是你得到了#2025错误提到parent,避免此类问题的孩子,尽量总是这样做:

yourObject.parent.removeChild(yourObject); 

你的情况,这将是:

homePage.parent.removeChild(homePage); 

你可以看看我对这个问题的回答: Remove Child and AS3 2025 Error

希望能有所帮助。

+0

这很奇怪。如果我这样做,我的游戏不会得到错误,但是当添加等级1时,我的角色不会移动。但是如果我按照自己的方式去做,我仍然会得到这个错误,但我可以这样移动我的角色......你知道什么导致我的角色冻结? – Crook 2015-02-25 01:14:04

+0

@Crook你在'homePage'中有一些代码吗?如果是的话,你能否展示它,否则,你能展示你用来移动角色的代码吗? – akmozo 2015-02-25 07:44:31

+0

公共功能的onkeydown(事件:的KeyboardEvent):无效 \t \t { \t \t \t如果(event.keyCode == Keyboard.A) \t \t \t { \t \t \t \t _vx = -5; \t \t \t} \t \t \t否则如果(event.keyCode == Keyboard.D) \t \t \t { \t \t \t \t _vx = 5; \t \t \t} \t \t \t否则如果(event.keyCode == Keyboard.W) \t \t \t { \t \t \t \t _vy = -5; \t \t \t} \t \t \t否则如果(event.keyCode == Keyboard.S) \t \t \t { \t \t \t \t _vy = 5; \t \t \t} \t \t} – Crook 2015-02-25 09:43:55

相关问题