我正在尝试在介绍屏幕播放完毕后创建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.
有谁知道我做错了什么?
答案 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);
}