Skip to main content
Inspiring
December 3, 2015
Question

error shows up after removing child

  • December 3, 2015
  • 2 replies
  • 2759 views

so when evil dies it plays a death animation and is removed on the last frame

it works fine but an error show up

The supplied DisplayObject must be a child of the caller.

if(evil.currentFrame == 47)

   {

    if(contains(evil))

    {

     removeChild(evil);

    }

    if(contains(evilShadow))

    {

     removeChild(evilShadow);

    }

   }

This topic has been closed for replies.

2 replies

kglad
Community Expert
December 3, 2015

use:

if(evil.currentFrame == 47)

   {

     removeF(evil);

     removeF(evilShadow);

   }

function removeF(dobj:DisplayObject=null):void{

if(dobj&&dobj.stage){

dobj.parent.removeChild(dobj);

}

}

Inspiring
December 3, 2015

I am not sure but I think he's using the if statement on enter frame event.. so if he used if(evil.currentFrame == 47) first then he'll get an error after it has been removed..

Inspiring
December 14, 2015

yes but my Character depth changes


this is the code that changes the depth of char.  I move the tree depth front and back depending on charShadow.y

after the evil death thing, charShadow doesn't change but char depth jumps to the top

for(var treeNum:int = treeshadows.length-1;treeNum>=0;treeNum--)

    {

    

     for(var someTrees:int = trees.length-1;someTrees>=0;someTrees--)

     {

      if(char.hitTestObject(trees[someTrees]))

      {

     

      if(charShadow.y < treeshadows[treeNum].y)

      {

       this.setChildIndex(trees[someTrees], this.numChildren-1);

      }

      if(charShadow.y > treeshadows[treeNum].y)

      {

       this.setChildIndex(trees[someTrees], this.numChildren-4);

      }

      }

      else

      {

      }

     }

Inspiring
December 3, 2015

if(contains(evil))

   {

    if(evil.currentFrame == 47)

    {

     removeChild(evil);

     removeChild(evilShadow);

    }

   }