会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
深圳夜归人
繁华的都市,有谁记得我们的脚步?
博客园
::
首页
::
博问
::
闪存
::
新随笔
::
联系
::
订阅
::
管理
::
公告
修改Flash的Locale类,以实现多语言自由切换。
flash mx里面的Locale类完成的功能是,读取语言配置文件,在播放flash文件时,自动选择客户机所使用的语言,用户无法选择自己想要的语言。这里针对这个不足作了改进。
修改Localt.as的2个函数:
//
call this after all the xml paths have been added
static
function
initialize():Void {
xmlDoc
=
new
XML();
xmlDoc.ignoreWhite
=
true
;
xmlDoc.onLoad
=
function
(success:Boolean) {
onXMLLoad(success);
//
parse the XML
callback.call(
null
, success);
}
/*
var langCode:String = xmlLang;
if(xmlMap[xmlLang] == undefined) {
langCode = defaultLang;
}
*/
var
langCode:String
=
defaultLang;
if
(xmlMap[langCode]
==
undefined) {
langCode
=
xmlLang;
if
(xmlMap[langCode]
==
undefined)
return
;
}
currentXMLMapIndex
=
0
;
xmlDoc.load(xmlMap[langCode][
0
]);
}
/*
*****************************************
* private methods
*****************************************
*/
private static
function
onXMLLoad(success:Boolean) {
if
(success
==
true
) {
//
reset the string map
delete
stringMap;
stringMap
=
new
Object();
parseStringsXML(xmlDoc);
assignDelayedInstances();
}
else
{
/*
var langCode:String = xmlLang;
if(xmlMap[xmlLang] == undefined) {
langCode = defaultLang;
}
*/
var
langCode:String
=
defaultLang;
if
(xmlMap[langCode]
==
undefined) {
langCode
=
xmlLang;
if
(xmlMap[langCode]
==
undefined)
return
;
}
currentXMLMapIndex
++
;
var
currentXMLMapCount
=
xmlMap[langCode].length;
if
(currentXMLMapCount
!=
undefined
&&
currentXMLMapCount
>
currentXMLMapIndex)
xmlDoc.load(xmlMap[langCode][currentXMLMapIndex]);
}
}
调用方式:
mx.lang.Locale.setDefaultLang (
"
zh-CN
"
);
mx.lang.Locale.initialize ();
必须条件:
多语言面板设置为自动检测语言设置。
posted on
2004-12-22 01:29
cpunion
阅读(
760
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部