最终实现效果:

以下是实现原理:
讲的详细些,包括思路、想法,希望能启发更多的人,用各种不同的方式实现效果。
1. 要用到的事件及函数:
1)fire的用法:
fire,中文翻译为触发事件,例如:
设置按钮A【单击时】-》【改变按钮A的文本】
设置按钮B【单击时】-》【fire按钮A的单击事件】
那么,当我点击按钮B时,会触发按钮A的单击事件,也就是改变按钮A的文本。也就是说,我没有点击按钮A,但通过fire事件,也触发了按钮A的单击事件。
假设,如果我设置了【按钮A】单击时可改变文本,同时,又设置了【按钮A】fire【按钮A】的单击事件,结果会如何呢???(小伙伴们可以尝试下,反正我的浏览器挂了)
由此,我想到了可以利用fire事件,在Axure中完成类似编程中的【while】循环,前提是,一定要设置好循环条件,不要造成死循环!!!
2)replace函数
replace('searchvalue','newvalue') 用途:用新的字符串替换当前文本对象中指定的字符串。 参数:searchvalue为被替换的字符串;newvalue为新文本对象或字符串。
本案例中, 使用[[input.replace(',',',')]],将中文“,”替换成“,”,防止中英文混输导致无法识别分隔符。
3)substring函数
substring(from,to) 用途:从当前文本对象中截取从指定位置到另一指定位置区间的字符串。右侧位置不截取。 参数:from为指定区间的起始位置;to为指定区间的终止位置,该参数可省略,省略该参数则由起始位置截取至文本对象结尾。
本案例中,使用[[varShuzu.substring(0,varShuzu.indexOf(','))]],将数组中每次第一个英文逗号前的字符取出来,添加到中继器中。
2. 循环逻辑:
1)首先,我们要找个flag标记我们要开始进入循环了,并且改变这个flag标记为循环中,当我们循环完毕退出时,要重置这个flag标记为初始状态,以便下一次进入循环使用。
本案例中,我用一个text文本[命名为shuzu]做标记,初始文本为循环标记,并将要处理的input字符串传给这个text。当这个text文本中的字符串未被处理完毕时,表示还需要继续循环;当这个text文本中的字符串被处理完的时候,重置这个字符串的文本为循环标记表示不需要再做循环了。
2)流程图:

3)开始实现:先不触发fire自动循环,先看下我们的逻辑能否走通:
设置一个按钮试验下,交互如下:

其中 :
【jiequ】是截取出来的字符串,也是往中继器中添加的字符串:[[shuzu.substring(0,shuzu.indexOf(','))]],意思是截取第一个逗号之前的字符给自己赋值,后续往中继器中添加的字符也是截取到的字符。
截取完之后,把剩下的字符塞回给要处理的数组:
【shuzu】要处理的数组字符串:[[shuzu.substring(shuzu.indexOf(',')+1)]],意思是截取第一个逗号之后的字符给自己重新赋值,因为逗号之前的已经处理完了,已经添加到中继器里面了。
【xunhuan】和【index】是验证效果用的,可以忽略。
效果如下:

4)开始添加fire触发循环:

注意:
仅在循环体中添加fire,判断为循环结束时,不要触发fire!否则又会开始一轮循环,从而导致死循环!
上方的第三个条件【字符串非初始字符串且不包含逗号】表示要处理的字符串已经处理完毕了,不要再循环了,所以没有添加fire事件!
效果如下:

5)搞定!现在我们可以将不需要的控件都进行隐藏,并且设置【input】输入控件按下回车时,触发自动循环的【单击】事件。
PS. 触发自动循环的单击事件不是必须的,我比较懒,有耐心的朋友可以将这些事件都放在输入控件的按下回车事件中去,然后删除自动循环按钮,我只是为了少写些循环语句。。。
6)完善下,当用户输入的字符中最后一个也是逗号的处理逻辑
当用户输入的最后一个也是逗号时,会造成处理到最后一个逗号分隔时导致截取的文子串为空的情况,所以添加个过滤条件。注意,此时实际上已经不需要再往中级其中添加元素了,所以也是循环完成。

最终效果:


美化版:
