创建flash电影
为了可以在你的flash中显示文本,可能需要建立一个或者多个文本域(Text Field).你可以通过使用creatTextField动态地创建一个,或者在电影里创建文本域,然后给它一个实例名,就可以调用这个实例了.我选择的是后面的那种办法.我把主文字窗口的实例名定为"content"(你可以在我提供的fla的"text field & scrollbar中发现它),将它的属性设定为"multiline",同时也要把"Render text as HTML"勾选上,以便你可以在文本中设定链接.
增加一个滚动条
因为你将要把所有的地址纪录按照那个小册子里给定的顺序放进你的文本域里,所以你必须要设定一个滚动条以便于那些较多的项目可以适合你给你的文本域所规定的尺寸.要做到这个,在flashMX中真的太简单的事情了.首先打开组件面板,拖一个scrollbar的备份到你的文本域.它将自动吸附到文本域的位置,并且自动地和"content"实例想连接.呵呵,美妙的体验.
建立一个MoviClip去放置JPEG图片
在这个电影中,你需要做的另外的一件事情就是放置那些你将要的载入的图片了.要作到这些,首先创建一个mc容器(位于我提供的原文件"pic,caption"层中),然后给这个mc一个实例名"picHolder".同样在该层里,新创建一个文本域(属性值仍旧为"multiline",但是HTML不再需要了),并将该文本域赋予实例名为"caption".
创建按钮标签
由于所有的标签除外观上稍有不同.之外,而功能基本上完全一样,所以你可以用那个在flashMX中所特有的button movie clip特征去创建它们.也就是说,你将用movie clip创建一个模板标签,然后你就可以复制尽可能多的你需要的标签了.然后,加入右边的字母标签所要执行的代码,同时给该标签加上对鼠标事件的监听,以便可以去相应用户的鼠标点击动作.
每一个按钮剪辑(tab movie clip)都包括着一个文本域"letter".每一个电影剪辑在被点击后,也都有一个被指定的相关onRelease功能.以便于完成你所要求的动作,当然,你也需要知道,你正在被访问的到底是哪一个标签剪辑.要想做到这个,首先应该按照一定的方式命名你的电影剪辑,以便于可以方便地知道当前正在被点击的是哪一个标签剪辑.比如,A标签被命名为"theA",B标签被命名为"theB"等等.记牢你刚才所赋予的实例名,下面的代码(在主电影区的第1桢)可以正确地设定你的三个标签(包括当被点击的时候,可以正确地显示字母及执行正确的动作):
复制内容到剪贴板
代码:
for (var i=65; i<=67; i++) {
// display the correct letter on the tab
this["tab"+chr(i)].letter.text = chr(i);
// when this tab is clicked
this["tab"+chr(i)].onRelease = function() {
// can't use chr(i) here -- must use mc name
// because i will not be set when the event actually happens
c.thisLetter = this._name.substr(3,1);
bigLetter.text = c.thisLetter;
content.htmlText = "Loading data for " + c.thisLetter;
// scope of this function is main timeline so can refer to c directly
c.sendAndLoad("flashmx_dbPassAndReturnString.php",c,"POST");
}
}对于A-C中的每一个字母,将被赋值被标签上的"letter"文本域;同时,也会执行下面的这些常规程序:
将与被选择的标签相关的字母 赋值给"对象c"的"thisLetter"属性,c是一个LoadVars对象,将在下面着重讨论.
显示那个被选择的字母作为一个地址簿的背景图.
告知用户当前正在从数据库中搜取信息.
启动转换器,使用LoadVars对象c去传输数据
注意,现在在主电影中,要做的事情还没有完成;当一个标签被点击的时候,他们将正在建立那些即将被执行的指令.现在你需要亲自去建立一个LoadVars对象,并且包括那些通过php得到数据后而将完成的动作.下面,我们将详细讲解怎么样可以做到这些.