今天决定开一个新坑,来讲讲产品经理的大杀器——Axure。 众所周知Axure是款原型设计工具,应用十分广泛。在国内近年来也有一些创业公司在做原型设计工具,如墨刀、mockplus等,主打简单、易用。但是Axure依然是主流。当然了我并不是说它们不好,其实我都有用过,对于新手来说,确实是很容易上手。 但是我想提醒的一点是,很多"易用"其实是甜蜜陷阱,在这些主打简单易用的原型工具上,很多细节其实你没法仔细思考其中的奥妙。很多效果都是工具给你封装好的,你拖一拖就完事了,这也限制了你的创造力。你只是在利用别人给你做好的轮子,你无法创造一个轮子。国产的原型工具设计出发点和理念很好,便利的同时就是要牺牲一点创意与成长空间。 目前的很多Axure教程都是按着特定的例子来的,标题一般长这样: Axure教程:做出模拟时钟的效果? Axure教程:如何做出滑动解锁的效果? 那我这个Axure之旅和Axure教程有啥区别呢?回到很久就以前就有人提到产品经理的道与术,是的,借用一下这个概念。我想讲的是Axure的道。 在这系列文章中,你不会看到太多的具体操作,以及那些无数你看不懂的公式(许多作者在文章中给出一个公式然鹅没有解释,留下一脸懵比的小白。)在这里我想分享的是如何运用工具去创造,将你脑子里的东西用可视化的形式展示出来。 本文阅读有一点难度,建议新手可以收藏,学完Axure基本操作后再来看。 好,接下去进入正题。 我把任意效果,都抽象为三层。 表现层: 就是这个效果(组件)长什么样,比如我们常见的淘宝五星打分,样子就是这样。 逻辑层: 用一个经典的句式来描述:if…then… 还是拿五星好评的例子举例。 if我鼠标移动到星星上then星星变成黄色 if我鼠标移出星星then所有星星都变成白色 …… 数据层: 数据层是你想展示给用户的东西。 表现层通过逻辑层连接数据层。 一般可以用一个公式表示: 数字=星星数 用一个图表示就是: 有了这个的关系,我们就可以分析绝大部分效果。 假设,我们要做一个这样的效果,如图: 分析如下: 表现层: 矩形框box 文字label 音量icon 滑竿dynamic panel (动态面板,凡是能够拖动、变化的东西,一般都是用这个组件做的,因为只有它有拖动事件。这点就需要一点使用经验了。) 好,我们照着在Axure里画一个: 逻辑层: if我拖动滑块then右边的数字会跟着我的滑动在0到100之间变化。 if我拖动滑块到最左边then无法继续拖动 if我拖动滑块到最右边then无法继续拖动 这边有一个拖动的限制,这个我们可以通过限制动态面板的边界实现。主要讲下思路: 动态面板的x轴数值不能小于滑轨的x轴。 动态面板的x轴数值不能大于滑轨的x轴与滑轨长度之和。 所以设置如下: left 大于或等于[[LVAR1.x]] left小于或等于[[LVAR1.x+LVAR1.width]] 其中LVAR1是本地变量,指向滑轨。 这里我们已经可以实现滑轨移动了。 这里我们观察到当滑块在最左边时候数字为0,在最右边的时候数字为100,可以知道其实滑块的位置占滑轨的百分比就是数字变动的规律。 那么数据层就是: 数据层: 数字=100*滑块占滑轨的百分比。 进一步翻译层Axure公式就是: 数字=[[(((slider.x-slide.x)/slide.width)*100).toFixed(0)]] 解释一下公式: (滑块的x值-滑轨的x值)/滑轨的宽度整个值保留0位小数 x.toFixed(y)函数,即对x保留y位小数。 至此,这个效果完美实现。 预览 总结一下: 将你想达成的效果分拆为表现层、逻辑层、数据层,表现层通过拖拽组件实现,逻辑层通过事件触发,数据层通过Axure函数实现。 开始你的Axure之旅吧!