2012-10-18 32 views
1

該命令用於在Flash中選取一個文本字段,並根據文本字段中的單詞或空格將其剪切爲不同的組。該命令正在混合單詞的順序。 (在下面的代碼中,我拿出了將組分配到不同層的部分)。JSFL命令將文本字段拆分爲單詞 - 閃存陣列順序錯誤

如果我鍵入單詞「測試命令」,並運行該命令,它會反轉字符數並剪切文本字段從後面到前面。

例如,第一個單詞「TEST」有四個字母。錯誤在於它將從文本字段末尾的字符「命令」的「d」開始計數。

所以結果是切割「mand」時它應該切割「測試」,等等。如果你從後面到前面的數字,你可以看到分裂對應於正確的字母數,但它的反轉...

我的第一本能是試圖顛倒其中一個數組的順序。相反()。它雖然沒有工作。

我正在使用Flash CS 5.5,AS3。請幫忙!

這裏是我談論的PIC ...

enter image description here

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(); 
} 
+0

你只是試圖分裂的空間字符串? – Ronnie

回答

2

也許這會有所幫助。我簡化了你的過程。我在舞臺上的文本字段中的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 
- 
+0

好的,那麼我怎樣才能將這些單詞分解成單獨的影片剪輯? 我需要將這些單詞[i] .charAt(k))添加到另一個數組中,然後將它們選中或分解並分組嗎? – KorinW

+0

嘿,所以我得到它與它輸出正確的順序...但由於某種原因,結果仍然是相同的... – KorinW

+0

沒關係,我想通了,我coudl只是反向for循環爲計數器 代替這個(var ctr = 0; ctr KorinW