2016-09-28 75 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

我做到了,所以当它结束时不会重复。这工作 –