0
votes

I keep getting this error:

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChild()
at ChristmasGame_fla::MainTimeline/frame4()
at flash.display::MovieClip/gotoAndStop()
at ChristmasGame_fla::MainTimeline/onClickMenu2()

I have a frame which has childs added using Actionscript. From this menu there are 7 levels that each when clicked use gotoAndStop() to play the level selected.

If I select level1 it's fine, but anything 2-7 gives the error above. No idea why, any help please?

Extremely messy code below: Will be cleaned up once error is solved!

stop();

var day1click:Day1Click = new Day1Click();
var day2click:Day2Click = new Day2Click();
var day3click:Day3Click = new Day3Click();
var day4click:Day4Click = new Day4Click();
var day5click:Day5Click = new Day5Click();
var day6click:Day6Click = new Day6Click();
var day7click:Day7Click = new Day7Click();
var menubg:MenuBG = new MenuBG();
var menutitle:MenuTitle = new MenuTitle();

addChild(menubg);
addChild(menutitle);
menutitle.x = 338.80;
menutitle.y = 71.25;
addChild(day1click);
day1click.x = 332.80;
day1click.y = 208.5;
addChild(day2click);
day2click.x = 567.80;
day2click.y = 208.50;
addChild(day3click);
day3click.x = 796.80;
day3click.y = 208.50
addChild(day4click);
day4click.x = 334.80;
day4click.y = 362.10;
addChild(day5click);
day5click.x = 567.80;
day5click.y = 362.95;
addChild(day6click);
day6click.x = 797.80;
day6click.y = 362.95;
addChild(day7click);
day7click.x = 567.80;
day7click.y = 506.75

day1click.addEventListener(MouseEvent.CLICK, onClickMenu1);
function onClickMenu1(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day1');
}

day2click.addEventListener(MouseEvent.CLICK, onClickMenu2);
function onClickMenu2(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day2');
}

day3click.addEventListener(MouseEvent.CLICK, onClickMenu3);
function onClickMenu3(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day3');
}

day4click.addEventListener(MouseEvent.CLICK, onClickMenu4);
function onClickMenu4(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day4');
}

day5click.addEventListener(MouseEvent.CLICK, onClickMenu5);
function onClickMenu5(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day5');
}

day6click.addEventListener(MouseEvent.CLICK, onClickMenu6);
function onClickMenu6(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day6');
}

day7click.addEventListener(MouseEvent.CLICK, onClickMenu7);
function onClickMenu7(event:MouseEvent):void{
    removeChild(menubg);
    removeChild(menutitle);
    removeChild(day1click);
    removeChild(day2click);
    removeChild(day3click);
    removeChild(day4click);
    removeChild(day5click);
    removeChild(day6click);
    removeChild(day7click);
    day1click.removeEventListener(MouseEvent.CLICK, onClickMenu1);
    day2click.removeEventListener(MouseEvent.CLICK, onClickMenu2);
    day3click.removeEventListener(MouseEvent.CLICK, onClickMenu3);
    day4click.removeEventListener(MouseEvent.CLICK, onClickMenu4);
    day5click.removeEventListener(MouseEvent.CLICK, onClickMenu5);
    day6click.removeEventListener(MouseEvent.CLICK, onClickMenu6);
    day7click.removeEventListener(MouseEvent.CLICK, onClickMenu7);
    gotoAndStop('day7');
}
1
Only exception is not helping much. Can you post the code through which you have created this multilevel menu? - PM.
Sure it is quite messy and I will clean it up once I get this working. Please check my edit to the main post: - user2960965
You are adding menu level 2 , 3, 4 etc in main canvas only, i.e. this.add() but not in nested fashion. i.e. menu level 2 is not inside the menu level 2. Is that what you want to do? Or you need to add level 2 under level 1 and so on. - PM.
Essentially they are all meant to be displayed at the same time, here is how it looks visually:imgur.com/jedfwg7 - user2960965
Just last question...When you click on Day1 and then Day2 you get this exception.Click on Day2 button and then Day1 you will get same error. If so, then I have solution. Please let me know. - PM.

1 Answers

0
votes

trace every item where youre calling addChild()

example:

var childInstance:DisplayObject;
trace(childInstance);// if you see null then issue is found
addChild(childInstance);