加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

}


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读