# Removing a child spawned from an array

**URL:** <https://forum.kirupa.com/t/removing-a-child-spawned-from-an-array/306213>\
**Category:** flash\
**Created:** [March 11, 2010, 8:16am UTC](https://forum.kirupa.com/t/removing-a-child-spawned-from-an-array/306213 "2010-03-11T08:16:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![eternalnoob](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@eternalnoob](https://forum.kirupa.com/u/eternalnoob)\
**Post date:** [March 11, 2010, 8:16am UTC](https://forum.kirupa.com/t/removing-a-child-spawned-from-an-array/306213/1 "2010-03-11T08:16:53Z")

</div>

Hello,  
I’m having trouble removing a child that I have spawned from an array. If I try to use the same for each loop that I use to address the children in the array in other functions, it removes all children that are in the array, but if I try to remove only that child, it complains the child is null.

The clickListener function is working out if the crosshairs are on the cow when the mouse clicks, but I want to wait two seconds (to allow the death animation to play in the clicked cow) before removing the child.

Here’s what I’m doing:

```auto
package {
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.*;
	import flash.ui.Mouse;

	public class CowGame extends MovieClip {
		public var herd:Array;
		public var cow:Cow;
		public var gameTimer: Timer;
		public var deathDelay: Timer;
		public var crossHairs: CrossHairs;
		public var gunShot: GunShot;
		public var moo: Moo;

		public function CowGame() {
			Mouse.hide();
			herd = new Array();
			for (var i:int = 0; i<10; i++) {
				var randomX:Number = 800 + Math.random()*800;
				var randomY:Number = 200 + Math.random()*400;
				var cow = new Cow(randomX, randomY);
				herd.push(cow);
				addChild(cow);
			}
			crossHairs = new CrossHairs();
			addChild(crossHairs);
			stage.addEventListener(MouseEvent.CLICK, clickListener);
			gameTimer = new Timer(25);
			gameTimer.addEventListener(TimerEvent.TIMER, timeKeeper);
			gameTimer.start();
			
			
		}
		public function timeKeeper(timerEvent:TimerEvent):void {
			crossHairs.x = mouseX;
			crossHairs.y = mouseY;

			for each (var cow:Cow in herd) {
				cow.moveCow();
			}
			timerEvent.updateAfterEvent();

		}
		public function clickListener(e:MouseEvent):void {
			//trace(e);
			for each (var cow:Cow in herd) {
				if (crossHairs.hitTestObject(cow)) {
					if (cow.alive) {
						cow.alive = false;
						gunShot = new GunShot();
						gunShot.play();
						moo = new Moo();
						moo.play();
						cow.gotoAndStop("shot");
						deathDelay = new Timer(200, 1);
						deathDelay.addEventListener(TimerEvent.TIMER, removeCow);
						deathDelay.start();
						//removeChild(cow);
					}
				}
			}
			
		}
		public function removeCow(e:TimerEvent):void {
			
			//trace("removeCow");
			removeChild(cow);
			deathDelay.stop();
			deathDelay.removeEventListener(TimerEvent.TIMER, removeCow);
		}
		
	}
}

```

It’s the removeChild(cow) line that throws the “null” error. Any help most appreciated.

Cheers,  
EN
