无法访问嵌套的MovieClip AS3

时间:2014-02-23 07:37:20

标签: actionscript-3 button nested flash-cs6

我正在尝试在介绍屏幕播放完毕后创建intro screen然后创建start screen

我认为最简单的方法是在第1帧第1帧,我会创建一个 MovieClip

顺便说一下,这是一个单独的文档文件。所以我给它一个文档类名mcStartGameScreen并将其链接到Flash Develop以获取操作。

现在是第1帧的MovieClip,我给出了startMenu的实例名称,然后在startMenu MovieClip中有一个MovieClip我希望buttonMode启用为true。我在mcStart内的第(65)帧添加了名为startMenu的MovieClip。

现在在我的行动中我有这个:

public class mcStartGameScreen extends MovieClip 
{

    private var mcStart:MovieClip;

    private var startMenu:MovieClip;

    public function mcStartGameScreen() 
    {
         startMenu.mcStart.buttonMode = true; //This is giving me the ERROR!

         mcStart.addEventListener(MouseEvent.CLICK, startOnClick);          
    }

    private function startOnClick(e:MouseEvent):void 
    {
         dispatchEvent(new Event("START_GAME"));
    }

    public function hideScreen():void
    {
         this.visible = false;  
    }

    public function showScreen():void
    {
         this.visible = true;
    }       
}

当我测试电影时,我得到了这个 error: Cannot access a property or method of a null object reference.

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果您已经在舞台上放置了MovieClip实例名称startMenu,那么就不需要了,

private var startMenu:MovieClip;您从代码中删除了此内容。

始终首先拥有舞台实例,然后继续。

所以修改你的构造函数如下:

public function mcStartGameScreen() 
{
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(e:Event):void
{
    startMenu.mcStart.buttonMode = true; //Now this will not give the ERROR!

    startMenu.mcStart.addEventListener(MouseEvent.CLICK, startOnClick);
}