此命令应该在 Flash 中获取选定的文本字段,并根据文本字段中的单词或空格将其分成不同的组。该命令混淆了单词的顺序。(在下面的代码中,我取出了将组分配到不同层的部分。)
如果我输入单词“Test of the command”并运行该命令,它会反转字符数并将文本字段从后到前切开。
例如,第一个单词“ TEST ”有四个字母。错误是它将从单词“ command ”末尾的“d”处的文本字段的末尾开始计数。
所以结果是在应该切割“TEST”时切割“ mand ”,依此类推。如果你从后往前数,你可以看到拆分对应的字母数量是正确的,但它是相反的......
我的第一个直觉是尝试使用 .reverse() 反转其中一个数组的顺序。但它没有用。
我正在使用 Flash CS 5.5、AS3。请帮忙!
这是我正在谈论的图片...
var doc = fl.getDocumentDOM();
var mystring = doc.getTextString();
var numberOfWords = mystring.split(" ").length;
var wordArray = new Array();
for (var k = 0; k < numberOfWords; k++){
wordArray[k] = new Array();
}
cntrNew = i = j = 0;
for (var ctr = 0; ctr < mystring.length; ctr++){
if (mystring.charAt(ctr) == " "){
i++;
}
else{
wordArray[i].push(cntrNew);
cntrNew++;
}
}
doc.breakApart();
var selectionArray = new Array();
var tempArray = new Array();
var finalArray = new Array();
selectionArray = doc.selection;
doc.selectNone();
for (var i in wordArray){
for (var k = 0; k < wordArray[i].length; k++){
fl.trace(wordArray[i][k]);
//wordArray.reverse();
tempArray[k] = selectionArray[wordArray[i][k]];
}
fl.trace("break");
doc.selection = tempArray;
doc.group();
finalArray[i] = doc.selection;
doc.selectNone();
}