使用Livecode,我想通过使用循环和数组将文本“Me”放在所有十个标签字段中。我用“label1”命名了第一个标签,用“label2”命名了第二个标签,依此类推到带有“label10”的最后一个标签。我怎么能这样做?
我尝试了这个但是我收到了一个错误:
local arrayIndexNumber
put 1 into arrayIndexNumber
repeat until arrayIndexNumber=10
put "Me" into field "label"&arrayIndexNumber
add 1 to arrayIndexNumber
end repeat
错误信息是:
卡片“myCard”:第nn行的编译错误(重复:命令所在的垃圾)“&”附近,char nn“
它指向put "Me" into field "label"&arrayIndexNumber
。
答案 0 :(得分:2)
试试这个:
repeat with i = 1 to 10
set text of field ("label" & i) to "Me"
end repeat
答案 1 :(得分:1)
简答:始终将动态派生的对象名称括在括号中。
斯科特的回答强调了LiveCode的一个怪癖:语言解析器从左到右解释每个语句,所以当它到达你的第4行时,它会看到它的第一部分 - “把我”放到字段“标签”中 - 作为完整的,语法正确的陈述。然后它必须弄清楚如何处理剩余的'& arrayIndexNumber',并且它失败了,因为那不是语法正确的语句或子句。通过将派生对象名称括在括号中,您强制解析器首先评估语句的该部分,因此在循环的迭代1中:
put "Me" into field ("label"&arrayIndexNumber)
解析器将其解释为:
put "Me" into field "label1"