这是代码
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip
{
var startPage:StartPage;
var hillPage:HillPage;
var pondPage:PondPage;
public function Main()
{
startPage = new StartPage;
hillPage = new HillPage;
pondPage = new PondPage;
addChild(startPage);
//Add event listeners
startPage.hillButton.addEventListener(MouseEvent.CLICK, onHillButtonClick);
startPage.pondButton.addEventListener(MouseEvent.CLICK, onPondButtonClick);
hillPage.backToStartButton.addEventListener(MouseEvent.CLICK, onBackButtonClick_Hill);
pondPage.backToStartButton.addEventListener(MouseEvent.CLICK, onBackButtonClick_Pond);
}
//Event handlers
function onHillButtonClick(event:MouseEvent):void
{
addChild(hillPage);
removeChild(startPage);
}
function onPondButtonClick(event:MouseEvent):void
{
addChild(pondPage);
removeChild(startPage);
}
function onBackButtonClick_Hill(event:MouseEvent):void
{
addChild(startPage);
removeChild(hillPage);
}
function onBackButtonClick_Pond(event:MouseEvent):void
{
addChild(startPage);
removeChild(pondPage);
}
}
}
所以我可以访问HillButton和PondButton就好了,但backToStartButton似乎正在向我抛出未定义的术语,所有的帮助将不胜感激
如果您想查看代码和fla文件,请单击here
答案 0 :(得分:0)
function onBackButtonClick_Hill(event:MouseEvent):void
{
addChild(startPage);
removeChild(hillPage);
}
在此功能中,您拨打removeChild(hillPage)
,但hillPage
不是您的Main
课程的子级。
以小孩的身份添加此页面,或尝试if(this.contains(hillPage)) removeChild(hillPage);
答案 1 :(得分:0)
您正在引用hillPage.backToStartButton和pondPage.backToStartButton但是浏览库中的这些项目,似乎您没有为这些按钮提供实例名称,从而导致未定义的错误。您还创建了AS链接,在这种情况下不需要这些链接,因为这些项目不是动态创建的,也不是实现自定义类。看起来你很困惑:AS链接不用于通过代码引用实例。
因此,要在您的特定情况下工作:删除库中的链接名称,通过单击这些项目中的后退按钮编辑hillPage和pondPage并设置其实例名称,然后您的代码将用于引用按钮