快速业务通道

实现word的批量替换功能,as动态文字功能的类-StringUtil

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11


即上次的SimpleDateFormat(格式化日期类)后的又一个原创类,大家评评,继续努力,呵呵.
这是这几天弄得,现在是1.0版,StringUtil是字符串工具类,说是文字工具类也可以,现在主要可以实现这几个功能:
1.批量替换功能,用replace(str,str2)方法,可以将制定的文本中的str替换成str2,
2.将制定文本中的每一个字符,用getMovileClip()转化成mc,这样就可以利用控制mc来控制这些字符,简单做出文字特效.返回的是MovieClilp数组
3.将制定文本中的每一个字符,作为数组元素,返回数组 代码如下
/**
* Title: 字符串工具类
* Description: 工具类
* Company:
* Copyright
* @author wei386
* @version 1.0
*/ class StringUtil extends String {
private var stringObject:String;
private var mcarray:Array;
/**
* 设置字符串
* @param str 将要操作的字符串
* @return void
*/
function setText(str):Void
{
this.stringObject = str;
}
/**
* 得到当前StringUtil对象的字符串
* @param str 将要操作的字符串
* @return void
*/
function getText():String
{
return this.stringObject;
}
/**
* 替换字符串中的字符
* @param findstr 查找的字符串
* @param replstr 将要替换的字符串
* @return String
*/ function replace(findstr:String, replstr):String {
var strindex:Number = 0;
strindex = stringObject.indexOf(findstr);
for (;;) {
if (strindex == -1|laststrindex==-1) {
return this.stringObject;
}
// 取得开始字符
var startstr = this.stringObject.substring(0, strindex)
// 取得最后字符
var laststr = this.stringObject.substring(strindex+findstr.length, this.stringObject.length);
// 在最后字符中查找是否还有要替换的字符
var laststrindex = laststr.indexOf(findstr)
this.stringObject = startstr+replstr+laststr
// 设置开始字符截取位置,使每次只查找最后字符中是否有要替换的字符
strindex = strindex +laststrindex+replstr.length }
}
/**
* 返回字符串的字符数组,将字符串的每一个字符作为数据的元素返回
* @param
* @return Array
*/
function getChar():Array {
var strarray = new Array(stringObject.length);
for (var i = 0; istrarray[i] = stringObject.charAt(i);
}
return strarray;
}
/**
* 得到以字符串每一个字符为MovieClilp的对象,MovieClip数组
* @param strcolor 文字颜色
* @param strsize 文字大小
* @return Array
*/
function getMovieClip(strcolor:Number,strsize:Number):Array
{
//声明数组,存放mc对象
this.mcarray = new Array(stringObject.length);
for (var i = 0; i//声明mc的名字
var mcarray_name:String = "StringUtil.mc_"+i
//在1000000层上创建一个空mc,名为"StringUtil.mc_"+i的格式
_level0.createEmptyMovieClip(mcarray_name,10000000+i)
//将这个产生的mc个i数组对象
mcarray[i]=_level0[mcarray_name]

//定义textfield的名字
var textfieldname = mcarray[i]._name;
//在mc上创建一个textfield
mcarray[i].createTextField(textfieldname,10000000+i,0,0,100,100);
// 设置textfield的字符
mcarray[i][textfieldname].text=stringObject.charAt(i);
// 设置文本不可选中
mcarray[i][textfieldname].selectable=false
var textformat:TextFormat = new TextFormat();
textformat.color=strcolor;
textformat.size=strsize;
mcarray[i][textfieldname].setTextFormat(textformat);

}
return mcarray;
}

}
使用方法:
新建一个fla文件,写上
var strutil = new StringUtil();
strutil.setText("闪吧我的家");//设置要操作的文字 替换字符串方法:
strutil.replace("我","我们");
就可以将strutil.setText()方法设置的字符串"闪吧我的家"中的"我"换成"我们" 将字符串换成MovieClip的方法:
var mcarray = strutil.getMovieClip(0x0099cc,50) 就可以将"闪吧我的家"中的每个字符转换成MC,0x0099cc是字的颜色,50是大小,返回的mcarray是数组
转换成mc后大小就可以用mcarray[i]._width,mcarray[i]._height控制了,就跟mc一样,然后就可以做自己的文字特效了. 这个类可以用来做as歌词用,只要每次setText()时,不同的字符串,也就是每句歌词,就可以了. 这只是1.0版,不是完整版,正在继续开发,2.0版会提供文字特效,会进一步对程序优化,提供设置文字格式的专门的方法,希望大家指正,呵呵 关键词:替换

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号