以前使用Axure只是停留在元件的布局和简单交互事件的设置,使用得非常肤浅,直到现在有时间静下心来重学Axure,才发现函数和变量的牛逼之处。
以前在做较复杂交互时,为了实现一个效果吭哧吭哧写了一串命令,而往往函数和变量一两行就搞定了。众所周知我们写的命令越多,相互之间冲突的可能性越大,出错越多,而且排查起来耗时耗力,尤其是在我们制作高保真原型做可行性测试的时候。这时使用函数和变量写交互命令的威力就体现出来了,简单的命令就能能制作逼真的复杂交互效果。
其实函数和变量没有我们想象的那么难。
变量的本质就是:数值的获取和使用
函数的本质就是:数值的处理(处理各种计算来达到想要的交互效果)
今天重点讲下变量
变量可以分成两大类:系统变量和自定义变量,而自定义变量里面又包括全局变量和局部变量。
系统变量,全局变量,局部变量三者功能各不相同。
系统变量:是系统已经创建好的变量,用于直接获取对象的特定属性值。
全局变量:主要是用于不同页面之间值的传递。
局部变量:主要是用于指定页面内某个特定对象,往往和系统变量配合使用。
系统变量在哪儿?其实就包含在函数里面,函数公式一共包括两部分:函数和系统变量。现在我们来一一认清他们。
看到区别没,变量是直接去获取某个对象的某个属性数值,不涉及数值的处理,只是简单粗暴地读取出来;而函数涉及数值的处理加工(函数处理的对象一定要是一个数值)。
如果还不能理解的话,就直接把带括号的看成函数,没有括号的看成变量就行。
全局变量在哪儿?
局部变量在哪儿?
变量命名需要遵循以下原则:
• 变量名称必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成。
• 变量名称的长度不得超过25个字符。
• 变量名称在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别、使用的作用范围。
• 变量名称不能是系统中的保留关键字,即不能与系统变量名称相同。例如:name、text、this等等。
那么他们有何区别?又该如何使用呢?这就要从变量的本质来说了。
变量的本质是数值的获取和使用。
数值?什么是数值?数值就是某个对象的某个属性值。比如:[[this.width]]这个元件的宽度值,[[target.x]]目标元件的x坐标值。
所以很明显变量获取使用数值就涉及到两个因素:对象和属性。
首先来说对象,系统变量里面有,如:this,target,页面,窗口,鼠标指针等;
全局变量也是对象,但对象一直在变,因为全局变量的作用是不同页面之间值的传递,是一个中间人的角色;
局部变量也是对象,但非常专一,对象是确定的。
再来说属性,属性只有系统变量中有,width是宽度,height是高度、opacity是透明度、length是长度
所以当我们在应用的时候书写格式为[[对象.属性]],如:[[This.text]]这个元件中的文本。
现在我们理解了对象和属性,那就很好理解系统变量,全局变量和局部变量之间的区别了。
系统变量拥有属性这个特权,但他的对象覆盖不全面,只有this,target元件,鼠标指针,窗口,中继器/数据集,页面和字符串,并不能够覆盖所有的对象,所以需要全局变量和局部变量进行配合。
全局变量扮演的是页面之间中间人的角色,把这个页面的指定值传递到另一个页面。
局部变量扮演的是该页面系统变量对象的补充角色,把这个页面中系统变量对象指定不了的,用局部变量来指定和命名,然后再配合系统变量的使用。但局部变量不能跨页面使用,只在该页面内有效。
就这么多,完