flash与游戏笔记:国际化 (3)
来源:互联网 发布:mac ps中的3d功能在哪 编辑:程序博客网 时间:2024/06/07 01:19
在过年的时候,在工作为了抽出中文替换就使用正则,方便一下自己的工作。在同事的指导下,遇到一些比较特殊的情况,例如一个as类里面含有相同的中文,而之前所写的会出现重复,所以在显示的时候,也可以加入一些判断。而后续,同事又有一些比较强烈的要求就是把替换好的中文对应的常量 也顺便替换到as类文件当中。这个做法是可以的,过去一些比较牛b的同事做法更加暴力,遇到大量中文文件的时候,把整个项目的含有中文的as类文件全部替换成对应的自定义的常量。过去在做国际版本的时候,会遇到这些情况,虽然还没正式参与到那时候的开发当中,不过在他们的工作中,也了解了不少和学到一些简单的做法。而下面这个则是自己用来帮助自己的一种小工具。纯粹自娱自乐。
import flash.text.TextField;import flash.display.Sprite;import flash.events.MouseEvent;import flash.filters.GlowFilter;import flash.text.TextFieldType;import fl.controls.*;import flash.utils.Dictionary;var regExp:RegExp = /\".*?\"/ig; //匹配双引号内容var myPattern:RegExp=/[\\u4e00-\\u9fa5]+/; //匹配中文//输入文本var inputTxt:TextField=new TextField();inputTxt.border = true;inputTxt.width = 980;inputTxt.height = 250;inputTxt.type = TextFieldType.INPUT;inputTxt.x = 10;inputTxt.y = 50;inputTxt.multiline = true;inputTxt.wordWrap = true;addChild(inputTxt); var msgTxt:TextField=new TextField();msgTxt.border = true;msgTxt.width = 300;msgTxt.height = 250;msgTxt.type = TextFieldType.DYNAMIC;msgTxt.x = 10;msgTxt.y=320;msgTxt.multiline = true;msgTxt.wordWrap = true;addChild(msgTxt); var codeTxt:TextField=new TextField();codeTxt.border = true;codeTxt.width = 670;codeTxt.height = 250;codeTxt.type = TextFieldType.DYNAMIC;codeTxt.x = 320;codeTxt.y=320;codeTxt.multiline = true;codeTxt.wordWrap = true;addChild(codeTxt); var tipTxt:TextField=new TextField();tipTxt.border = true;tipTxt.width = 100;tipTxt.height = 20;tipTxt.type = TextFieldType.INPUT;tipTxt.x = 50;tipTxt.y=600;tipTxt.text="TIPS";addChild(tipTxt);//创建按钮var btn:Button=new Button();btn.label="创建";btn.addEventListener(MouseEvent.CLICK,onCover);btn.x = 300;btn.y = 600;btn.buttonMode = true;btn.filters = [new GlowFilter(0xcccccc)];addChild(btn);var checkBox:CheckBox=new CheckBox();checkBox.x=160;checkBox.y=600;checkBox.label="是否添加注释";addChild(checkBox);function onCover(event:MouseEvent):void{if (inputTxt.text){selectChinese(inputTxt.text);}}//抽出双引号字符function selectChinese(str:String):void{var tempStr:String=str;var strArray:Array = str.split(";");var codeStr:String = "";var n:int = 0;var temp:Array=[];var myValue:Array=[];var data:Array=[];for each (var str:String in strArray){var result:Object = regExp.exec(str);while (result != null){var chineseStr:String=result.toString();if (result && myPattern.test(chineseStr)){// 检测中文 //trace(result);var index:int=temp.indexOf(chineseStr);if(index==-1){ temp.push(chineseStr); myValue.push("LangModules."+tipTxt.text + n); if(checkBox.selected) { var tipStr:String="/**"+ result.toString()+"*/"+"\n\n"; codeStr+=tipStr; } codeStr += "public static const"+ tipTxt.text + n + ":String=" + result.toString() + ";\n"; data.push({key:chineseStr,value:"LangModules."+tipTxt.text + n}); n++;}else{ data.push({key:chineseStr,value:myValue[index]});}}result = regExp.exec(str);}}msgTxt.text=codeStr;//替换对应的中文for each(var tips:Object in data){tempStr=tempStr.replace(tips.key,tips.value);}codeTxt.text=tempStr;}
- flash与游戏笔记:国际化 (3)
- flash与游戏笔记:国际化 (2)
- flash与游戏笔记:国际化
- flash游戏资源的国际化
- Flash 游戏设计笔记:鼠标类游戏(3)
- flash与游戏笔记:滚动数字
- flash与游戏笔记:滚动数字(2)
- flash 游戏设计笔记
- NDS游戏与FLASH游戏
- flash与游戏笔记:简单的人物demo
- flash与游戏笔记:如何定位一个资源位置?
- Flash 游戏设计笔记:鼠标类游戏(1)
- Flash 游戏设计笔记:鼠标类游戏(2)
- Flash 游戏设计笔记:鼠标类游戏(4)
- 国际化与标准化的笔记
- 每天学一点flash(34) as 3.0 游戏设计笔记(3)
- flash 与3D笔记:图片墙(1)
- flash 游戏设计笔记:我的工具类(DateFormat)
- 工作三年的反思与总结
- UVaOJ10152---ShellSort
- 彻底卸载orcale
- 1AVA 实现Comparator 方法排序
- 在Visual Studio 2005下配置WinPcap开发环境
- flash与游戏笔记:国际化 (3)
- UVaOJ673---Parentheses Balance
- CSS语言详解——读书笔记
- U盘装系统中bios怎么设置USB启动
- javascriptOOP
- 欧几里得算法求最大公约数(九度刷题)
- VOD学习之TS 流中PAT PMT解析实例
- kyoto cabinet
- RSS订阅