Macromedia终于在2004里公布了对静态文本进行操作的对象——TextSnapshot!
TextSnapshot对象由MovieClip的getTextSnapshot()方法返回,反馈的是MC内部静态文本的信息。
在MC中添加一静态文本,在主时间轴第一帧加AS:
var ts = mc.getTextSnapshot(); for (var i in ts) { trace(i); } |
测试:
setSelectColor findText hitTestTextNearPos getSelectedText getText getSelected setSelected getCount |
上面列出的即为TextSnapshot对象的成员。具体功用可在帮助里找到。
findText方法可在TextSnapshot中查找指定的字符串,用法如下:
var ft = ts.findText(from, "txt",boolean); |
其中3个参数,第一个决定查找的起始位置,第二个指定查找的字符串内容,第三个为布尔值,指明是否区别大小写。
例如影片剪辑mc中有静态文本为大写的ABCDEFGHIJKLMNOPQRSTUVWXYZ,那么
var ts = mc.getTextSnapshot(); var ft = ts.findText(0, "f", 0); trace(ft); |
得到
5!
如果换成
var ts = mc.getTextSnapshot(); var ft = ts.findText(0, "f", 1); trace(ft); |
将得到
-1!
这就是大小写的区别。getCount返回整个静态文本的字符数,如同上的文本内容,使用
var ts = mc.getTextSnapshot(); var gc = ts.getCount(); trace(gc); |
结果是
26!
再就是setSelected,可以设定文本中哪些为被选择的内容,而getSelectedText可以返回被选择的内容:
var ts = mc.getTextSnapshot(); ts.setSelected(1, 3, true); var str = ts.getSelectedText(); trace(str); |
这样,就把从1~3(不包括3)的字符列为被选,因此返回的是
BC
其他方法类似,可以参考一下帮助,不再一一列出了。