Development Flash ActionScript

package {
  import flash.display.*;
  import flash.events.*;
  public class Main extends Sprite {
    public function Main() {
      var container:Sprite = new Sprite(  );
      var child:Sprite = new Sprite(  );
      var grandchild:Sprite = new Sprite(  );
      container.addEventListener(Event.ADDED, addedListener);
      container.addEventListener(Event.REMOVED, removedListener);
      container.addChild(child);  
      child.addChild(grandchild);  
      stage.addChild(container);
      child.removeChild(grandchild);
      stage.removeChild(container);
    }
    private function addedListener (e:Event):void {
      if (e.eventPhase != EventPhase.AT_TARGET) {
        trace("container has a new descendant: " + e.target);
      } else {
        trace("container was added to a new parent: "
              + DisplayObject(e.target).parent);
      }
    }
    private function removedListener (e:Event):void {
      if (e.eventPhase != EventPhase.AT_TARGET) {
        trace("a descendant was removed from container: " + e.target);
      } else {
        trace("container was removed from its parent: "
              + DisplayObject(e.target).parent);
      }
    }
  }
}