引言:
在Axure的使用过程中,我们有时需要在不同页面之间传递数据,通常是使用全局变量,但是如果需要与内联框架页面进行实时的数据传递,就必须知道一个全局变量的值是否改变。
正好前些天,有人在我的QQ群558143802《最InのAxure-疑难杂症》里询问:”有人知道怎么在axure内联框架页面中打开当前页面的动态面板么?“
那么我们就利用全局变量监听器来实现一下。
原理:
我们需要利用动态面板的“状态改变时”交互来实现全局变量的监听。
教程:
第一步:我们在项目里新建一个默认值为0的state全局变量:
第二步:建两个页面,一个是主页面,一个是内联框架页
第三步:在内联框架页里拖出3个按钮,值分别为1、2、3,点击时交互为设置全局变量state为[[This.Text]]
第四步:在主页面里拖出一个动态面板,一共三个状态,状态名称分别为State1、State2、State3,内容随便放。
第五步,在主页面里再拖出一个动态面板,起名Listener,一共两个状态,做为我们的监听器。
第六步,添加Listener的状态改变时交互
文明说明如下:
- 状态改变时交互
- 改变了
- 如果全局变量state不等于0了
- 就改变动态面板的状态为State[[state]]
- 将全局变量改回0
- 如果全局变量state不等于0了
- 继续监听
- (注意:这里需要右键把Else if true改为If true)
- 等待200毫秒(这个可自定义)
- 继续改变当前面板状态
- (注意:这里需要右键把Else if true改为If true)
- 改变了
第七步,添加Listener的载入时交互:切换到动态面板的下一个状态并且向后循环
这样,我们的监听器就做好了。
简化:
其实如果你的页面只有一个动态面板,那么可以不要Listener,直接把监听逻辑写在同一个动态面板的“旋转(ROTATE)”或者”移动(MOVE)“交互里,在加载时(LOADED)触发一下。
为什么我这里写“简化”而不是“优化”呢?是因为“单一职责原则”,是谁的活就让谁干而已,具体实现看个人喜好吧。
演示:
https://5gn5xg.axshare.com/#id=7aaj7h&g=1
下载:
如果觉得我的教程做的不错呢,欢迎关注、收藏、转发、捐赠,谢谢。
原文链接:Axure监听器之全局变量监听器
转载请注明:最InのAxure » Axure监听器之全局变量监听器