【发布时间】:2017-08-28 17:00:33
【问题描述】:
我有一个文本字段,我想一次推出一个单词。单词在一个数组中。显示单词之间的延迟设置为 1 秒。第一个单词显示 2 秒。因此出现了奇怪的双重陈述。
msgArray = [
["Hello", "World"],
["89:23", "Tom Eriksen","Scooores!!"],
["Overtime", "about to", "start"]]
printMessageLoop = (msgArray, target) ->
target.text = msgArray[0]
timeToRead = 1
Utils.delay timeToRead, () ->
for i in [1..msgArray.length-1]
Utils.delay timeToRead*i,() ->
target.text = msgArray[i]
print "i="+i #debugging purpose
当我调用printMessageLoop(msgArray[2]) 时,target 正确显示第一个单词,但最后两个是“未定义”。打印输出说:
printMessageLoop(msgArray[2])
»i=3
»i=3
似乎在执行target.text = msgArray[i] 行时,i 被设置为最后一个i。即 i++ = 3
为什么?我该如何解决?
【问题讨论】:
标签: framerjs