有人可以帮助我使用Actionscript 3中的动态页面标题吗?

时间:2009-08-30 02:37:05

标签: flash actionscript-3 text dynamic

HELP!如何修复此Actionscript 3.0以便为每个页面创建动态页面标题? 我是Actionscript 3.0的新手,我正在尝试使用动态文本为每个页面生成页面标题。我的网站上有四个页面,这是我到目前为止的动作脚本:

stop ()
function createTitle (whichpage:String) {
pageTitle.text = whichpage;
};
var page:String="theres no place like home";
createTitle (page);

function btn1Press (MouseEvent) {
gotoAndStop (1);
}

function btn2Press (MouseEvent) {
gotoAndStop (10);
}

function btn3Press (MouseEvent) {
gotoAndStop (20);
}

function btn4Press (MouseEvent) {
gotoAndStop (30);
}

btn1Press.addEventListener (MouseEvent.CLICK, Home);
btn2Press.addEventListener (MouseEvent.CLICK, Services);
btn3Press.addEventListener (MouseEvent.CLICK, About);
btn4Press.addEventListener (MouseEvent.CLICK, Contact);

stop();


1,10,20,30 represent the frames that each page is on

四个导航按钮设置如下:

btn1Press = Home Page (Instance name "Home")
btn2Press = Services Page (Instance name "Services")
btn3Press= About Page (Instance name "About")
btn4Press=Contact Page (Instance name "Contact")

我已经设置了动态文本框。基本上我需要每个按钮去他们各自的页面,我需要动态文本框中的文本根据它是哪个页面来改变。这是我在第10,20和30帧(服务,关于和联系)

的附加动作

page =“services”;    createTitle(页面);    停止();

page =“about”;    createTitle(页面);    停止();

page =“contact”;    createTitle(页面);    停止();

我对此感到非常沮丧,任何帮助都会非常棒!

我不断收到有关未定义函数的错误#1061

所以我认为提出问题的更好方法是:

我在Flash CS4中有一个四页的站点,第1页从第1帧开始,第2页从第10帧开始,第3页从第20帧开始,第4页从第30帧开始。我已经转换了四个导航按钮按钮符号。我该怎么称呼每个按钮,我应该将每个按钮的实例称为什么?我需要在操作面板中放置哪些代码才能使导航按钮正常工作,并使动态文本框显示特定于其所在页面的标题(“欢迎使用主页”,“欢迎使用”到关于页面“,等等

感谢您的帮助+耐心,我发现这一切都令人困惑。 :(

2 个答案:

答案 0 :(得分:1)

在Flex中切换视图时,您希望动态更改Flex中页面上的HTML标题。唯一的方法是通过在Flex中调用的javascript。它会是这样的:

FLEX

public function setTitle(title:String):void {
if (ExternalInterface.available) {
    ExternalInterface.call("setTitle", title);
}
}

JAVASCRIPT

    function setTitle(t){
document.title.innerText = t;
}

答案 1 :(得分:0)

我认为最大的问题是你将事件监听器附加到函数,而不是按钮的函数作为事件处理程序。第一个区块末尾附近的那些线应该是这样的:

homeBtn.addEventListener (MouseEvent.CLICK, btn1Press);

或者,在Flash按钮上有一个属性页面,您可以在该按钮上附加该按钮的“Click”处理程序。

您应该尝试使用Flex Builder。你在这里构建的东西真的感觉像应该用Flex而不是Flash构建的东西。 Flex有许多漂亮的过渡等等,而且很容易在Flash Professional中构建一些内容并将其放入Flex项目中。这将解决您的风格和组织问题。

此代码中还有许多其他缺陷,并非所有缺陷都是致命的,只是丑陋:

  • 在AS中,与JS一样,语句末尾的分号是可选的,但添加它们仍然是个好主意。 (第1行,“停止()”。)

  • 你在这里重塑了1980年代风格的BASIC,完成了“GOTO LINE”。切换到Flex是改善代码风格的一种方法,因为Flex Builder强制执行许多好的样式规则。如果您只需要坚持使用Flash Professional,那么可能还有Flash设计模式可以在这种环境中避免这种情况。获取一本关于AS3重型Flash开发的书。我相信你会在那里找到很多好的建议。

  • 与编号的控件同上,只有这样才能使您获得初学者级的VisualBasic。例如,btn1Press()应该被调用类似homeButtonPressed()的东西。一年后,您将不得不点击Flash开发环境中的所有内容来确定“btn1”是什么。如果您通过含义调用按钮及其调用的函数,则不会出现此问题。