背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

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

[日期:2004-10-03] 来源:  作者: [字体: ]
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; i<strarray.length; i++) {
strarray[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<mcarray.length; 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()时,不同的字符串,也就是每句歌词,就可以了.
阅读:
录入:admin

推荐 】 【 打印
上一篇:读取XML中的内容(终极篇)
下一篇:在Flash MX中实现设为首页和加入收藏夹
相关新闻      
本文评论       全部评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款