拆分不是一个函数?

Split is not a function?

我有这段代码用于测试:

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(" "); 有一个错误。 Flash 说 split 不是函数 (

TypeError:错误 #1006:split 不是一个函数。 在 Untitled_fla::MainTimeline/code()

)

在这个项目的早期,我对变量的不同部分使用了 split 函数,我也尝试了 parts[0]=parts[0].split(" ") out of the event,它工作正常。

我想知道的是,为什么拆分命令在这种情况下不起作用?我做错了什么吗?

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

即使在事件之外,这一行也没有多大意义,因为它将 split() 的 return 值分配给调用该方法的同一个变量。由于 ENTER_FRAME 被重复执行,这个 在它第二次发生时失败,因为 split() returns 一个 Array 本身没有这样的方法,这就是错误的基本含义。