我正在使用Flash Professional CS4和ActionScript 3.0字在Flash中突出使用ActionScript 3.0
比赛很快结束了,我只需要添加一个功能,突出了一些“标签”,如“[NAME]文本编辑器“和”[AGE]“(通过改变颜色)。
我使用的是textField,而不是TextArea组件。这是我使用的代码,但它不能按计划运行。
taMain.addEventListener(Event.CHANGE, checkTags);
function checkTags(e):void{
var tempFormat:TextFormat = taMain.getTextFormat(taMain.selectionBeginIndex - 1, taMain.selectionEndIndex);
var splitText:Array = taMain.text.split(" ");
for (var i = 0; i < splitText.lenght; i++) {
switch (splitText[i]) {
case "[NAME]":
tempFormat.color = (0xff0000);
break;
case "[AGE]":
tempFormat.color = (0x0000ff);
break;
default:
tempFormat.color = (0x000000);
}
taMain.setTextFormat(tempFormat, taMain.text.indexOf(splitText[i]), taMain.text.indexOf(splitText[i]) + splitText[i].length);
}
}
此代码仅在首次使用标签时起作用,但如果再次使用标签,它不会更改颜色。
任何想法?任何其他功能,我可以使用?
在此先感谢。
startIndex作品!但是,你说得对,我没有考虑过这些情况。有关如何查找特定单词的好主意?也许看字符一个字符? – 2011-04-09 23:52:18
使用正则表达式。一个很好的工具是在这里:http://www.gskinner.com/RegExr/例如,搜索[AGE]字符串使用全局标志,正则表达式应该是'/ \ [AGE \]/g '。要找到[AGE]或[NAME],请使用'/ \ [AGE \] | \ [NAME \]/g' – sydd 2011-04-10 01:57:45