簡體   English   中英

JSFL 命令將文本字段拆分為單詞 - Flash 陣列順序錯誤

[英]JSFL Command Split Textfield into Words - Flash Array Order error

該命令應該在 Flash 中選取一個選定的文本字段,並根據文本字段中的單詞或空格將其分成不同的組。 該命令正在混淆單詞的順序。 (在下面的代碼中,我取出了將組分配到不同層的部分。)

如果我輸入“命令測試”並運行命令,它會反轉字符數並將文本字段從后向前切開。

例如,第一個單詞“ 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();
 }

也許這會有所幫助。 我簡化了你的過程。 我在一個 AS3 項目中進行了測試,在舞台上有一個名為“txt”的文本字段

var mystring:String = txt.text;
var words:Array     = mystring.split(" ");

for (var i = 0; i < words.length; i++)
{
    for (var k = 0; k < words[i].length; k++)
    {
        trace("letter:",words[i].charAt(k));
    }
    trace("-");
}

它輸出:

letter: t
letter: e
letter: s
letter: t
-
letter: o
letter: f
-
letter: t
letter: h
letter: e
-
letter: c
letter: o
letter: m
letter: m
letter: a
letter: n
letter: d
letter: s
-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM