Hi guys, im having problems with adding children to the stage, Im trying to add two movieclips into a container, then add the container to the stage. The problem is my coins were not displaying (Guessing they were behind my ‘map’) so after doing a bit of research i discovered the ‘getChildAt’ function, so i followed the advice and set the numbers to the index i presumed they would be in.
I now get the following error :
[SWF] Game.swf - 779350 bytes after decompression
RangeError: Error #2006: The supplied index is out of bounds.
at flash.display::DisplayObjectContainer/addChildAt()
at Game/addCoins()[C:\Users\Chris\Documents\Uni Year Three\Flash Games\Car Assignment Final\Final 12th Feb\Game.as:56]
at Game()[C:\Users\Chris\Documents\Uni Year Three\Flash Games\Car Assignment Final\Final 12th Feb\Game.as:41]
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Car/loop()[C:\Users\Chris\Documents\Uni Year Three\Flash Games\Car Assignment Final\Final 12th Feb\Car.as:52]
Please help! thanks.
public function Game()
{
// CONSTRUCTOR CODE
addEventListener(Event.ENTER_FRAME, everyFrame);// Calls this function every frame
coinsCollected = 0; // Set coinsCollected to 0
lifes = 3; // Set lives to 3
mapContainer = new MovieClip(); // Create new mapContainer MC
addCoins(); // Calls the addCoins function once
addMap();
}
// Function to add the coins to the stage, only called once
public function addCoins()
{
var areas:Array = [map.area1_mc,map.area2_mc,map.area3_mc,map.area4_mc,map.area5_mc,map.area6_mc];
for (var i:int = 0; i < areas.length; i++)
{
for (var j:int = 0; j < 3; j++)
{
var Ycoin:Coin = new Coin();
Ycoin.x = Math.round(Math.random() * ((areas*.x + areas*.width - Ycoin.width) - areas*.x)) + areas*.x;
Ycoin.y = Math.round(Math.random() * ((areas*.y + areas*.height - Ycoin.height) - areas*.y)) + areas*.y;
mapContainer.addChildAt(Ycoin,-1);
coinsOnstage.push(Ycoin);
}
}
}
public function addMap()
{
mapContainer.addChildAt(map,0); // Adds the map to the Container.
stage.addChild( mapContainer ); // Adds the container to the stage.
mapContainer.x = 654.90; // Set the map Containers .X
mapContainer.y = 169.05; // Set the map Containers .y
stage.addChild(car); // Add the Car.
car.x = 76; // Set the cars.X
car.y = 530; // Set the cars.y
}