AS3-控制时间轴的按钮在MovieClip中不起作用

时间:2011-02-25 05:02:22

标签: flash actionscript-3 movieclip

这是我第一次使用ActionScript编写网站代码。到目前为止,一切都进展顺利,我在Photoshop中设计了网站,并导入到Flash CS5。然后我清理了所有内容,并开始使用按钮向各个页面添加导航。

网站构建方式非常简单,有五个主要页面,它们通过静态导航栏上的按钮连接(第一页,主页,没有相应的按钮)。然后有九个子页面,每个子页面包含有关游戏角色的信息,并连接到“角色”图层/ MovieClip中的相应按钮。我的四个菜单按钮(故事,世界,角色,附加功能)都可以正确导航而不会出现问题。

问题出现了,因为在我的角色页面(一个影片剪辑)中有九个按钮,每个按钮链接到不同的页面。这些按钮应该将时间轴带到指定的框架,但是当单击按钮时没有任何反应。我花了几个小时寻找解决方案,但没有用,我觉得答案很简单。认为你可以帮助我吗?

这是我到目前为止所尝试的内容:

替换

gotoAndStop("gowang", "Scene 1");

在Gowang字符按钮功能中输入:

MovieClip(root).gotoAndStop("gowang");

但是这产生了相同的结果,按钮什么都不做。

我也尝试在Character页面MovieClip中放置字符按钮监听器和函数,但这给了我这个错误:

ArgumentError:错误#2108:未找到场景场景1 在flash.display :: MovieClip / gotoAndStop()
在Gowang_fla :: Top_31 / clickGowang()

我花了很多时间来解决这个问题,如果有人可以提供帮助我真的很感激。

〜这是.FLA:http://mindsparkdesigns.com/files/WebsiteFla.zip

〜这是代码:

stop();

//Fade Effect

import fl.transitions.Tween;
import fl.transitions.easing.*;

var homeTween:Tween = new Tween(home_mc, "alpha", Regular.easeOut , 0, 1, 2, true);

//Buttons

story_btn.addEventListener(MouseEvent.CLICK, clickStory);
world_btn.addEventListener(MouseEvent.CLICK, clickWorld);
characters_btn.addEventListener(MouseEvent.CLICK, clickCharacters);
extras_btn.addEventListener(MouseEvent.CLICK, clickExtras);

home_mc.storyH_btn.addEventListener(MouseEvent.CLICK, clickStoryH);
home_mc.worldH_btn.addEventListener(MouseEvent.CLICK, clickWorldH);
home_mc.charactersH_btn.addEventListener(MouseEvent.CLICK, clickCharactersH);
home_mc.extrasH_btn.addEventListener(MouseEvent.CLICK, clickExtrasH);

top_mc.gowang_btn.addEventListener(MouseEvent.CLICK, clickGowang);
top_mc.ayame_btn.addEventListener(MouseEvent.CLICK, clickAyame);
top_mc.evora_btn.addEventListener(MouseEvent.CLICK, clickEvora);
top_mc.rogin_btn.addEventListener(MouseEvent.CLICK, clickRogin);
top_mc.toraz_btn.addEventListener(MouseEvent.CLICK, clickToraz);
top_mc.naomi_btn.addEventListener(MouseEvent.CLICK, clickNaomi);
top_mc.rummy_btn.addEventListener(MouseEvent.CLICK, clickRummy);
top_mc.teeth_btn.addEventListener(MouseEvent.CLICK, clickTeeth);
top_mc.sichan_btn.addEventListener(MouseEvent.CLICK, clickSichan);

extras_mc.blog_btn.addEventListener(MouseEvent.CLICK, clickBlog);

function clickBlog(event:MouseEvent):void
{
    navigateToURL(new URLRequest("http://www.gowangadventures.blogspot.com"), "_blank");
}

function clickGowang(evtObj:MouseEvent){
gotoAndStop("gowang", "Scene 1");
}
function clickAyame(evtObj:MouseEvent){
gotoAndStop("ayame", "Scene 1");
}
function clickEvora(evtObj:MouseEvent){
gotoAndStop("evora", "Scene 1");
}
function clickRogin(evtObj:MouseEvent){
gotoAndStop("rogin", "Scene 1");
}
function clickToraz(evtObj:MouseEvent){
gotoAndStop("toraz", "Scene 1");
}
function clickNaomi(evtObj:MouseEvent){
gotoAndStop("naomi", "Scene 1");
}
function clickRummy(evtObj:MouseEvent){
gotoAndStop("rummy", "Scene 1");
}
function clickTeeth(evtObj:MouseEvent){
gotoAndStop("teeth", "Scene 1");
}
function clickSichan(evtObj:MouseEvent){
gotoAndStop("sichan", "Scene 1");
}
function clickStory(evtObj:MouseEvent){
gotoAndStop("story");
}
function clickWorld(evtObj:MouseEvent){
gotoAndStop("world");
}
function clickCharacters(evtObj:MouseEvent){
gotoAndStop("characters");
}
function clickExtras(evtObj:MouseEvent){
gotoAndStop("extras");
}
function clickStoryH(evtObj:MouseEvent){
gotoAndStop("story", "Scene 1");
}
function clickWorldH(evtObj:MouseEvent){
gotoAndStop("world", "Scene 1");
}
function clickCharactersH(evtObj:MouseEvent){
gotoAndStop("characters", "Scene 1");
}
function clickExtrasH(evtObj:MouseEvent){
gotoAndStop("extras", "Scene 1");
}

2 个答案:

答案 0 :(得分:2)

看起来您正在将按钮侦听器分配给您声明它们时不在舞台上的按钮。将此代码移到第30帧的补间代码下面,它应该可以工作:

top_mc.gowang_btn.addEventListener(MouseEvent.CLICK, clickGowang);
top_mc.ayame_btn.addEventListener(MouseEvent.CLICK, clickAyame);
top_mc.evora_btn.addEventListener(MouseEvent.CLICK, clickEvora);
top_mc.rogin_btn.addEventListener(MouseEvent.CLICK, clickRogin);
top_mc.toraz_btn.addEventListener(MouseEvent.CLICK, clickToraz);
top_mc.naomi_btn.addEventListener(MouseEvent.CLICK, clickNaomi);
top_mc.rummy_btn.addEventListener(MouseEvent.CLICK, clickRummy);
top_mc.teeth_btn.addEventListener(MouseEvent.CLICK, clickTeeth);
top_mc.sichan_btn.addEventListener(MouseEvent.CLICK, clickSichan);

由于你的'characters_mc'位于该帧的舞台上,因此它们可以接受这些侦听器(因为它们在您之前尝试声明它们时不存在)。

答案 1 :(得分:-1)

您可以使用MovieClip作为按钮:

MovieClip(this.parent).gotoAndStop("gowang");