邮件订阅
5ucms仿站,在Flash中用XML实现多语言支持
作者: 来源: 日期:2017/1/7 21:08:43 浏览量:18(滞后) 人气:LOADING...(实时) 【

5ucms仿站,在Flash中用XML实现多语言支持
下载本教程源文件请点击这里。

一、介绍

互联网是没有国界的,但互联网是有多语言的,有关多语言支持问题很令人头痛,在制作Flash作品,特别是在制作网页方面应用的过程中,对多种语言的支持就显得越发重要了。本文介绍了一种在Flash中利用XML来实现多语言支持的方法。

二、实现原理

可以利用Flash支持unicode编码来实现多语言的支持。先将XML文档的编码设置为utf-8,将要显示的内容保存在XML文档中。在Flash中创建一个XML对象,在此对象中导入相应的XML文档,解释并显示出来,就实现了多语言的支持。注意此种实现方法只能支持utf-8编码的语言。

三、制作实例

我们来实现一个支持英语、法语、德语、意大利语、葡萄牙语、西班牙语六种语言的例子,例子的效果如图1所示。当然,要实现更多的语言支持,实现的原理是大同小异的,只是需要简单的更换一下XML文档而已。


A、准备XML文档

我们要将所需要显示的内容都保存在XML文档中,其中最重要的是在XML文件头中设置encoding="utf-8"。

1、新建一个XML文件,命名为english.xml,本文件用来支持英语,注意在用编辑工具编辑的时候,保存的格式要为utf-8格式,保存的内容如下所示:



<?xml versi encoding="utf-8"?>
<C encoding="utf-8"?>
<C encoding="utf-8"?>
<C encoding="utf-8"?>
<C encoding="utf-8"?>
<C encoding="utf-8"?>
<CONTENT>
<english_btn>Inglés</english_btn>
<french_btn>Francés</french_btn>
<spanish_btn>Espa?ol</spanish_btn>
<german_btn>Alemán</german_btn>
<italian_btn>Italiano</italian_btn>
<portuguese_btn>Portugués</portuguese_btn>
<content_txt>Aquí es un ejemplo de lo que usted puede hacer con los archivos de XML externos y Llamarada MX. Haga clic en cualquier bandera y automáticamente todos los campos del texto se ponen al día a idioma cualquier que usted selecciona. La grapa de la película no traduce el texto. Lee el texto traducido que usted escribe en el documento de XML simplemente. Entonces está cargado en su película.</content_txt>
</CONTENT>

B、制作Flash文件

1、在Flash中新建一个文件,将影片的大小设置为760 px * 200 px,背景设置为黑色。如图2所示。

2、在场景中用文本工具拉7个文本框,类型都设置为Dynamic_Text,分别命名为english_btn、french_btn、spanish_btn、german_btn、italian_btn、portuguese_btn、content_txt。在场景中的摆放位置如图3所示,注意中间大的那个为content_txt。

3、在场景的时间轴上面,新建一个层,命名为action,在action层的第一帧上面插入关键帧(插入关键帧的方法为在时间轴中用鼠标右键点击此帧,选取Insert Key frame即可),将帧的标签设置为english,在此帧的Action面板上面添加如下内容:


content = new XML(); //注释1
content.ignoreWhite = true; //注释2
content.load("xml/english.xml"); //注释3
function languageOnLoad() { //注释4
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad; //注释5
注释1:创建一个XML对象。
注释2:忽略XML对象中的空格。
注释3:导入XML文档,此文档中的内容为要显示的英语内容。
注释4:设置导入XML文档时的响应函数。在此函数中,分别设置了各个按钮所对应的文本框的显示内容。
注释5:设置响应函数。

4、在action层的第八帧上面插入关键帧,将帧的标签设置为french,在此帧的Action面板上面添加如下内容:


content = new XML();
content.ignoreWhite = true;
content.load("xml/french.xml"); //注释1
function languageOnLoad() {
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad;
stop();

注释1:导入XML文档,此文档中的内容为要显示的法语内容。

5、在action层的第八帧上面插入关键帧,将帧的标签设置为spanish,在此帧的Action面板上面添加如下内容:

content = new XML();
content.ignoreWhite = true;
content.load("xml/spanish.xml"); //注释1
function languageOnLoad() {
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad;
stop();

注释1:导入XML文档,此文档中的内容为要显示的西班牙语内容。

6、在action层的第八帧上面插入关键帧,将帧的标签设置为german,在此帧的Action面板上面添加如下内容:

content = new XML();
content.ignoreWhite = true;
content.load("xml/german.xml"); //注释1
function languageOnLoad() {
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad;
stop();

注释1:导入XML文档,此文档中的内容为要显示的德语内容。7、在action层的第八帧上面插入关键帧,将帧的标签设置为italian,在此帧的Action面板上面添加如下内容:

content = new XML();
content.ignoreWhite = true;
content.load("xml/italian.xml"); //注释1
function languageOnLoad() {
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad;
stop();

注释1:导入XML文档,此文档中的内容为要显示的意大利语内容。

8、在action层的第八帧上面插入关键帧,将帧的标签设置为portuguese,在此帧的Action面板上面添加如下内容:

content = new XML();
content.ignoreWhite = true;
content.load("xml/portuguese.xml"); //注释1
function languageOnLoad() {
_root.english_btn.text = content.firstChild.childNodes[0].firstChild;
_root.french_btn.text = content.firstChild.childNodes[1].firstChild;
_root.spanish_btn.text = content.firstChild.childNodes[2].firstChild;
_root.german_btn.text = content.firstChild.childNodes[3].firstChild;
_root.italian_btn.text = content.firstChild.childNodes[4].firstChild;
_root.portuguese_btn.text = content.firstChild.childNodes[5].firstChild;
_root.content_txt.text = content.firstChild.childNodes[6].firstChild;
}
content.onLoad = languageOnLoad;
stop();

注释1:导入XML文档,此文档中的内容为要显示的葡萄牙语内容。

9、在场景中放置6个按钮,分别表示点击后显示英语、法语、德语、意大利语、葡萄牙语、西班牙语,并在表示英语的按钮的Action面板上面增加如下语句:


on (release) {
gotoAndStop("english");
}

在表示法语的按钮的Action面板上面增加如下语句:

on (release) {
gotoAndStop("french");
}

在表示德语的按钮的Action面板上面增加如下语句:


on (release) {
gotoAndStop("german");
}
在表示意大利语的按钮的Action面板上面增加如下语句:


on (release) {
gotoAndStop("italian");
}

在表示葡萄牙语的按钮的Action面板上面增加如下语句:

on (release) {
gotoAndStop("portuguese");
}

在表示西班牙语的按钮的Action面板上面增加如下语句:


on (release) {
gotoAndStop("spanish");
}

此时场景中的情况应该如图4所示。


C、小结

至此,实例就制作完成了,将XML文档都放置在一个名为xml的文件夹中,在Flash中生成实例的swf文件,将生成的swf文件放置在跟xml文件夹同级的目录中,打开swf文件就可以看到实例效果。注意在Flash中是看不到效果的,因为在Flash导入不了xml文档。
如果想要支持更多的语言,只需要更换XML文档的内容就可以实现,所以应用还算是比较简单的。

下载本教程源文件请点击这里。

欢迎您访问www.5ucms.org

本站推荐: 5ucms模板下载 5ucms插件下载 仿站联系Q3876307       [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:5ucms模版,在Flash中用ActionScript实现3D效果(1)
下一篇:5ucms仿站,用Flash技术打造超酷的网页右键菜单
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
5ucms仿站,在Flash中用XML实现多语言支持的关键词:
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org