2016-09-28 76 views
-1

我有這樣的代碼,我與測試:斯普利特不是一個功能?

var test:String="Hello there; im zane" 
var parts:Array=test.split(";"); 
trace(parts) 
trace(parts[0]) 
var randomnum:Number=0; 
stage.addEventListener(Event.ENTER_FRAME, code) 
function code(c:Event):void{ 
    if(parts[randomnum] != undefined && parts[randomnum] != null){ 
     parts[randomnum]=parts[randomnum].split(" "); 
     randomnum+=1 
     trace(parts[randomnum]) 
     } 
    else{ 
     randomnum=0 
     } 
} 

並沒有與此parts[randomnum]=parts[randomnum].split(" ");錯誤。閃存說,分裂不是一個函數(

類型錯誤:錯誤#1006:分裂是不是一個函數 在Untitled_fla :: MainTimeline /代碼()

)在這個項目

早些時候,我使用了與變量的不同部分的分割函數,並且我還嘗試了parts[0]=parts[0].split(" "),並且它工作正常。

我想知道的是,爲什麼在這種情況下split命令不起作用?難道我做錯了什麼?

+0

'trace(parts [randomnum])'並確保它是一個字符串。 – Marty

回答

1

I also tried parts[0]=parts[0].split(" ") out of the event and it worked fine.

即使外面的事件,該行並沒有太大的意義,因爲它分配給同一個變量,該方法被調用上的split()返回值。由於ENTER_FRAME重複執行,此第二次發生故障,因爲split()返回Array其中沒有這種方法本身,這是錯誤基本上說。

+1

我做到了,所以當它結束時不會重複。這工作 –