flash与游戏笔记:国际化 (2)
发布时间:2020-12-15 18:17:03 所属栏目:百科 来源:网络整理
导读:??????? 今天已经放假了,可以整理一下最近的笔记,接下来上面的笔记。国际化 中 as 主模块文件里面不能出现中文,于是有一个做法是把中文抽到一个类as里面集中定义。但是有什么快速的方式去替换?其中一个简单方式。可以做一个以下的实验。 package{import
??????? 今天已经放假了,可以整理一下最近的笔记,接下来上面的笔记。国际化 中 as 主模块文件里面不能出现中文,于是有一个做法是把中文抽到一个类as里面集中定义。但是有什么快速的方式去替换?其中一个简单方式。可以做一个以下的实验。 package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { init(); } private function init():void { Alert.show("警告信息"); InPut.trace("铜钱不足",coper+"是否进行购买?"); if(Test("元宝")!=-1) { do("<font color='#ffffff'>谢谢你的购买</font>"); } } } }
? ? ? 对应的工具在这里。 我们基本思路很简单,首先要匹配到双引号里面内容,然后检索双引号是否含有中文,则我们判断这个双引号的内容是我们想要的。于是我们替换一种我们想要的自定义格式 ? 如 public static const XXXX:String=“中文”; ? 这里我们输出来,就可以减少我们的劳动力了。 ?你会问这种方式会不会有遗漏,答案是有的,因此这个不确定因素还是会存在。有一个更加大胆做法,就是我们将我们检索出的中文,直接替换成我们自定义的常量。这样也是可以。 不过至少这种做法,可以减少一部分劳动力。而在写国际化的时候,因为过多的常用引号,因此在可读性会差一点,这种使用正则去处理中文的问题,也是一个比较好玩的东西。? ? import flash.text.TextField; import flash.display.Sprite; import flash.events.MouseEvent; import flash.filters.GlowFilter; var regExp:RegExp = /".*?"/ig; //匹配双引号内容 var myPattern:RegExp=/[u4e00-u9fa5]+/; //匹配中文 //输入文本 var inputTxt:TextField=new TextField(); inputTxt.border = true; inputTxt.width = 450; inputTxt.height = 300; inputTxt.type = TextFieldType.INPUT; inputTxt.x = 50; inputTxt.multiline = true; inputTxt.wordWrap = true; addChild(inputTxt); //创建按钮 var btn:Sprite=new Sprite(); btn.graphics.beginFill(0xcccccc); btn.graphics.drawRoundRect(0,100,20,5,5); btn.graphics.endFill(); btn.addEventListener(MouseEvent.CLICK,onCover); btn.x = 230; btn.y = 320; btn.buttonMode = true; btn.filters = [new GlowFilter(0xcccccc)]; addChild(btn); function onCover(event:MouseEvent):void { if (inputTxt.text) { selectChinese(inputTxt.text); } } //抽出双引号字符 function selectChinese(str:String):void { var strArray:Array = str.split(";"); var codeStr:String = ""; var n:int = 0; for each (var str:String in strArray) { var result:Object = regExp.exec(str); while (result != null) { if (result && myPattern.test(result.toString())) { // 检测中文 //trace(result); codeStr += "public static const TIPS" + n + ":String=" + result.toString() + ";n"; n++; } result = regExp.exec(str); } } trace(codeStr); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |