标签归档:原型制作

关于原型设计的一些事

关于什么是原型

为了讨论方便,有必要先做一个简单的定义。

这里的原型指的是对最终产品各页面上内容的简单呈现,通常不会设置颜色和字体,也不含图片。这里的原型,也通常被称作线框图、示意图、蓝图。在一些极端的情况下,原型图往往可以先被抽象成一个个的模块组合,然后再去细化每个模块中的内容极其展示形式。

原型的主要作用是为了沟通最初的产品设想。原型图展示的是内容和结构及粗线条的布局,而不是视觉设计。

一定程度上,原型图是为了说明用户将如何与产品进行交互,其主要受众是团队里的工程师与设计师。原型图一定要体现出用户在每个页面上期望看到的内容,以及这些内容在页面上的相对优先级。通常情况下,原型图在纸上呈现,也可以使用一些特定的软件进行制作,常见的包括axure、viso等。

所以,根据这个定义和解释。我们接下来讨论的问题,主要是围绕着Web网站和APP的原型设计进行的。

关于原型的精细程度

业界普遍的认知是,原型做相对中保真即可。中保真的原则是,对照原型,团队的设计师和工程师能够明白我们要做的是一件什么事情及这件事的重点就可以了。

当然,还存在另外一个观点,原型,必须是要高保真的。对于这个观点,个人持保留意见。高保真的原型需要花费更多的精力,同时,不够敏捷。

关于原型绘制工具

在程序员的世界里,终极问题是,什么是最好的语言?在前端工程师的世界里,终极问题是,什么是最好的浏览器?在产品经理和交互设计师的世界里,终极问题是,什么是最好的原型工具?….

基本上,不存在绝对好用的工具,完全取决与自己的爱好与使用是否顺手。关于原型绘制工具,网络上有很多人总结了很多不同的工具,你可自行选择。我个人使用的比较顺手的是axure。

哦,对了,实际上最好用的原型设计工具,最后,我发现,是纸和笔。在快捷酒店管家的实际项目运作中,我们更多的是运用白板来绘制原型,然后将经过讨论通过的原型用手机拍下来做记录存档。

关于axure的使用

(不使用该工具的同学,读到这里可以关掉页面了,谢谢。)

1、千万不要去学习复杂的交互动作!

首先,在axure里使用复杂的交互会上瘾,这将大大的浪费你的时间;其次,设计师和工程师都不会看你的复杂交互动作的,他们只觉得这是个图形而已;第三,如果你真想学,为什么不去学div+css呢?

2、如果你确实需要表达一个复杂的交互,可以考虑将这个交互拆解了表述

典型的比如一个输入框的不同状态。可以拆解为,获得焦点激活输入框 – 正在输入中 – 输入完成激活提交按钮 – 点击提交按钮完成提交。

这种拆解的方式,虽然看上去会占篇幅,但是却实在是最容易被理解的,连流程图都能省略了。

3、可以考虑将需求文档与axure原型结合起来

只是说可以,没说一定要这么做。这是我一直在使用的一种方式,我自己觉得效果还不错,详细的可以参考“基于axure的PRD协作”,不再赘述。

4、一定要有一套属于自己的控件库

控件库,简单理解就是将产品拆解成很多的小零件,当你需要的时候,将这些零件进行组装即可。这可以大大的提高你的原型制作效率。

关于原型控件,每个原型工具都有,你可以自己网上搜索。在实际运用的过程中,你可以根据自己的需要对这些控件做修改,之后可以再次使用。

5、原型的版本存档同样重要

原型,跟实际产品一样,是会迭代和不断被修改的,所以,一定要记得存档。即使是在同一个原型上做修改,也一定要做记录,这对后续回顾很重要。

1362540338

(快捷酒店管家首页的早期原型)

最后,

原型设计,是每个交互设计师和产品经理最最最基本的技能。这也是一个梳理思路很好的方式。

基于axure的PRD协作

大约1年多前我写了一篇《基于axure的PRD写作思考》,其主旨思想是将文档版本的PRD与线框图及流程图结合起来,统一由axure来输出,降低PM与研发之间的沟通成本及交付物的传递成本。

当时这个文档是基于我做Web端产品设计的经验为蓝本完成的,这1年多来我从Web端完全转到Mobile端,还在继续的使用着这套方法。在不断的实践过程中略有心得,遂更新一篇,详细的讲述一下这套思路。

当然,肯定会有很多人说axure是个很笨重的工具,从来不用;也肯定会有很多人说我们团队有严格的文档规范,你的这套东西不适用…..是的,你们都是对的。这套方法的最大好处就是快速、直接,适用于扁平化的团队。如果你是产品与研发异地的团队,那么,建议还是有详细的文档比较合适。

关于一个PRD文档需要包含的内容及相关的结构,之前《基于axure的PRD写作思考》已经说的比较清楚,不再赘述。我们为什么要写PRD?简单来说就是把我们具体要做一个什么样的东西很详细的描述出来并传递给团队其他成员知晓,最终一起执行。这里面我觉得有3个点特别重要,详细描述、快速传递、一起执行,一份不管是什么形式的PRD最终都必须做到这3点。

从打开axure准备开始进行原型设计开始,我会把文件分成这样几个部分:修改记录、产品结构、(用例及信息架构)、具体页面原型设计。在具体页面的原型设计的时候会再根据这个页面的负责程度看是否要增加一个流程图页面进去。

修改记录

修改记录模块主要是对该原型的迭代历史进行记录。修改记录可以使用文本面板完成,主要记录比如,什么时候修改了什么模块,原因是什么。每次对原型进行修改都必须记录下来,这种内容迭代的记录方式一方面便于自己后续回忆与总结,同时也对项目管理的需要,每次的修改都有据可查。

产品结构

产品设计本身是个从大往小的过程。所谓大就是指的产品整体的结构所谓小则是具体的交互设计页面布局等。我个人非常不建议一开始就进入到具体的页面设计,即使是一个具体的页面设计也建议先把页面模块及相应模块的布局想清楚,然后再开始填充内容;而如果是一个会涉及到很多步骤的设计,如果流程没有事先想清楚画出来,千万不要动手去设计。

按照我个人的习惯,产品结构部分一般会采用结构图的方式调用流程图模式把这个产品的结构关系画清楚。目的有这样几个:搞清楚用户的主要路径,用户会从什么地方进入产品,在里面会经过哪些页面,然后会从什么地方退出;弄清楚产品的层级关系,从移动端的设计上看,产品的层级关系一定要避免太深;梳理一下整个产品的页面,不要有遗漏。

用例及信息架构

用例之前在Web端我通常是直接采用母板来完成的,最近在做Mobile的产品设计,倍感在画原型的时候把用例标识出来的重要性。个人感受,移动端的产品需要比Web端更加深入的考虑模块复用,一来保持整个客户端的统一性,同时复用的模块在一定程度上是可以减少开发工作量的。

就一个Apps而言,这个部分通常会包括一级页面的页面结构、二级页面的页面结构、三级页面的页面结构、….;弹层的样式及出现方式;是否出现menu键、样式及内容(android)等内容。

当进行需求评审的时候也建议按照这个顺序来说,先介绍一下整个产品的结构,向整个团队成员说清楚我们大概要做一个什么样的产品,他包括哪些部分,这些部分的关系是咋样的;其次开始介绍一下这个产品他从一个框架上看是什么样子的,有一个感性的认知;再次开始按用户任务/流程分模块进行介绍,详细的说明其中的策略问题。

具体页面原型设计

具体页面的原型设计分为2种,1种是页面行为比较单一,简单的几个图加一定的文字就可以描述清楚的;一种是页面行为的流程及逻辑性比较强,有比较多的中间状态和用户行为的分支,这种页面我一般的方式是先画出流程图,然后再相应的给出页面原型。

第一种页面比较简单,设计的时候想着点各个平台的设计规范(指南)就可以搞定。同时可以在页面原型的边上把每个模块部分取的元素内容及相应的策略也写出来。

不过,需要有一个提醒,在移动端会存在不少页面的长度是超过1屏的,在原型设计的时候一定要画出一条屏幕高度基线,将第一屏内容和第二屏内容隔开。一方面重要的内容都必须在第一屏有所体现,另一方面注意节减页面高度,同时在原型评审的时候也让其他角色提前有所了解。

另一方面,如果一个模块涉及的交互流程比较复杂,比如一个输入框,在初始状态、开始输入状态、输入完成状态、输入出错状态(超过字数限制)等不同状态下的表现及相应的操作提示都是不一样的,建议分别拆成几个不同的状态完成。这部分之前在Web端的时候可以直接用axure的交互来完成,但是mobile端的屏幕有所限制,再去做这些交互效果,往往也隐藏比较深,不如拆出来画。

一些关于移动端原型设计的其他问题

1、工具永远都是工具,不要让工具限制了你。axure也好,viso也好,OmniGraffle也好,做出来的东西无分好坏。

2、除非脑子里想的比较清楚了,不要冲动性的就开始用axure画原型。在我看来,画原型只是20%的功夫,更多的功夫应该在原型之外,包括对要做什么,为什么要这么做的思考。同时,纸面原型是更好的选择,帮助锊清思路。

3、在原型设计的过程中需要注意沉淀一些规范性的组件出来。每个团队每个项目都应该有一套自己的原型组件,而不应该是直接找别人要来原型组件然后直接导入(当然,系统通用的组件除外)。

4、原型设计的过程中,酷炫的原型交互需要适可而止。

Axure之变量的使用

写在最前面:任何工具都容易造成沉迷,Axure也一样;沉迷工具有害健康,过渡钻研Axure不利于职业发展!

1、什么是变量

变量的全称应该是“中间变量”,变量用于在HTML原型中进行点击时的页面之间的传递和存储数据,这样变量能在页面之间保持下去。Axure文件中可最多使用25个变量。变量可以在交互设计和逻辑条件中使用。

简单说就是,在2个页面之间添加一个桥梁,用以延续交互动作。这个东西最直观的理解就是我们在做几何题目的时候通常需要在2个条件之间再取一个中间的条件,最后达到证明这2个条件是一致的,如:a=b,b=c,所以,a=c。

在Axure中可以通过“线框图”(Wireframe)——“管理变量”(Manage Variables),来增加或者管理变量。
Axure会默认一个变量叫做“OnLoadVariable”,必须使用字符和数字做变量名,不能大于25个字符长度,且不能含有空格。

2、变量的使用情景

1)动态显示输入的字符
2)动态统计并显示输入的字符长度
注:这里变量只能实现计算字段的长度,但是不能做加减乘除运算,所以想要实现“还可以输入XX个汉字…”这样的交互目前在Axure上还无法实现。
3)页面之间的锚点跳转,详见之前的这篇
4)下拉列表的联机动态加载
5)Tab页签的变换
注:较常规的动态面板也可以实现该功能
….

简单说,变量的使用一般程序:添加变量,修改变量值,判断变量值,加载对应内容。

特别说明:
1)变量的使用过程中需要用到每个组件的标签名称,所以,必须要先给需要用到的组件添加标签,不然就全部显示“unlabeled”。
2)在“设置变量和组件的变化值”这个交互动作的时候,一般的格式是:变量的值“a”等于组件值的长度“b”;组件中的文本“C”等于值,然后后面有个编辑文本。
点击进去之后可以编辑的是动态显示的具体内容,你可以输入的是一些修饰内容,无关紧要,最主要的是,要记得插入变量“a”,这样整个交互才能起作用

3、实例
之前设想过的一个微博输入框为例,点击这里查看。

P.S:
一个容易忽略的地方:Axure在处理多个交互动作的时候,实际上你是可以手动设置他们的发生顺序的。在“交互属性”弹窗的右上角有个“高级编辑器”,点击里面的箭头来对交互动作的发生进行排序。这个主要应用在如:弹窗XX秒后自动消失等交互上。

Axure之复用

作为工具,首要的条件就是高效率。高效率的解决问题,高效率的传达,高效率的记录,等等。Axure之所以被称作“快速原型设计”就在于他能高效率的完成原型设计并高效率的传达。而这一切得益与axure的“复用”思想。在Axure中的复用包括2个部分:组件的复用、模块的复用。

先温习一下在axure中什么是组件什么是模块,高手请直接跳过:

组件(控件)是用于设计线框图的用户界面元素。在组件(控件)面板中包含有常用的控件库,如按钮、图片、文本框等。从组件面板中拖动一个控件到线框图区域中,就可以添加一个组件。组件可以从一个线框图中被拷贝(Ctrl+C),然后粘贴(Ctrl+V)到另外一个线框图中。组件面板工具栏中可以加载已有组件库、创建新组件库、编辑当前组件库、或更新组件库,也可以对组件进行搜索。

模块(Maste)是可以重复使用特殊页面。一些常用模块如页首(Header)、页尾(Footer)与导航(Navigation)。模块可用在页面中或是其他模块中。只要修改模块,在所有引用这个模块的页面中的模块也会相应跟着同步更新。 模块的概念犹如PowerPoint 中母版、Dreamveawer中模板的概念,熟练掌握模块可以大大提高原型设计的效率,并使原型易于管理维护。

组件的复用是axure默认传达的第一个复用原则,axure内置有基本的Web组件和流程图组件。当然,axure还提供了更高级的组件复用——自定义组件库。在Web设计中,为了保持一致性每个系统模块都会有大量的重复设计出现,如按钮样式、链接样式、表单样式、Tab页签样式、翻页样式、图片大小、输入框交互等等等等

Axure的自定义组件可以使用有心人制作的,比如官方提供的基于雅虎风格的Web组件套装和mobile原型设计组件(下载地址)、比如有个牛逼的老外制作的2套Web原型(下载地址);也可以自己在项目过程中自我总结创建。

在控件面板中点击下拉菜单的“Create library”(创建组件)选项,这时会弹出一个保存对话框让对这个.rplib文件进行命名和保存,Axure会立刻启动另一个执行程序并打开这个刚建好的 .rplib文件。

在新的Axure程序界面中,原本站点地图面板的位置会被组件库面板(Widget Library Pane)所取代。你可以像处理页面一样对组件进行新增、删除、排序。

Axure启动时,如果已经把创建好的自定义组件库(.rplib文件)放在Windows文件夹的―我的文件> My Axure RP Librarie目录中,则该组件库会被自动加载到控件面板中。另外,你也可以手动选择你所指定的 .rplib 文件进行组件库加载。新建立的自定义组件库的操作方式就如同其它的默认组件库一样,以拖放(Drag&Drop)的方式将组件放到画布上进行画面的绘制。

虽然自定义组件和模块都基于组件的组合,但组件与模块的区别在于,组件是针对Axure存在的,在所有基于axure完成的页面中都可以使用该组件;而模块是基于某一具体的axure页面存在的,仅在该axure文件下可以使用,如果打开新的axure文件则该模块不存在了。模块针对某一具体项目以单个axure文件为单位组合复用;组件针对所有axure文件为单位组合复用。

模块的复用常用于在某个产品模块中会重复出现的情况下,如展示商品的列表、未登录的弹层、页面头部、导航、页面底部等等。共同的特点就是,在该产品模块下都需要且表现形式都一样。也就意味着如果要修改就得全部修改,如果出现就要不断的“CTRL+C”在“CTRL+V”,由于这些组件并不是单一的,如果是复制的话很可能复制不全,即使你使用了组合。模块则可以很好的解决这些麻烦。

模块有2种制作方式:在页面中框选住需要转发的组件,右键选择“转化成模块”;在左侧导航部分选择“Add Master”(添加模块)进行模块制作。在实际操作中个人觉得第一种方式应用更多,因为肯定是先在页面中进行了全局设计才知道这些组件是可以转化成模块的,有一个全局的考虑先。

模块有以下3种行为:

  • 普通行为(Normal):模块可以被移动与放置在线框图中的任何地方,对模块所做的修改会在所有模块实例中同时更新。
  • 背景行为(Place in Background):模块应用在线框图中时,会处于线框图的最底层并被锁定。模块实例中所包含控件的位置与在模块中的位置相同,常用于作为模板、布局、底板。
  • 自定义控件行为(Custom Widget): 模块应用在线框图中时,模块实例中的控件与原模块失去关联,模块实例中的控件可以像一般控件一样可以进行编辑,就好像只是进行了复制和粘帖操作。常用于创建具有自定义属性、注释和交互的自定义控件库,例如:具有白色文字的蓝色按钮。

使用一个工具并把它用透,比使用多个工具但每个工具都会使用一点要高效的多。别去追求炫目,追求效率,这是俺在使用工具上的一点小感悟,记录如此。

基于Axure的PRD写作思考

从半只脚迈入产品经理这个大门的那天起我就被2个文档的名称深深的纠缠着,他们是市场需求文档(MRD)、产品需求文档(PRD)。先不论你是什么方向的PM,这2个玩意一定会一直伴随你的Title跟着你。这2个文档在不同的团队中有不同的叫法和写法,我也见过有团队的MRD其实就是PRD,不沾半点商业市场分析的边的,当然,这些不是本文探讨的内容。

长久以来,有个很有趣的现象:“有没有PRD模板,PRD该咋写”这个问题已经成为新手入门经典必问题目之一;如果1年以后这个家伙还在这行里混,他一定会抱怨,娘滴,我们的QA压根就不看我的文档、我们的交互(如果有这个职位的话)还是会问我一些我写的很明白的问题、我们的测试拿着文档问我该咋测试、….

Web页面之间的关系是网状的,而Word文档只能树状的表述,这无疑是矛盾的;PRD文档无法做到实时更新发布,我回顾了我第一年写的PRD文档,很多下面的修改栏都是空的,惭愧之至….;所谓一图胜千言,万言刚够文档标准,每个PRD都是臭长臭长的,这样的东西别说交互设计师了,很多PM自己写完了都不想看。所以,我武断的认为,撰写某些PRD文档实在是一个既耽误时间又费劲且不敏捷的事情(很多PRD都是一夜情,写完了就不会修改更不会有人乐意看100P以上的文档),是在让产品经理实现慢性自杀!

个人认为,一个PRD文档需要包含以下的内容:

1、概述
1.1、名词说明:文档中涉及到的名词
1.2、产品概述及目标
1.3、产品风险预估
1.4、产品开发进度:产品开发阶段及责任人与时间节点
2、使用者需求
2.1、使用者需求描述:定义用户是谁
2.2、管理员需求描述:后台管理部分(很多人会忽略这个部分)
2.3、任务流程图:从业务逻辑流程产品逻辑流程转化
3、功能需求
3.1、功能总览
3.2功能需求分解:界面分解及交互说明和用例
4、非功能需求:与该产品相关联的辅助产品等
5、上下线需求:产品的生命周期
6、运营计划:产品的上线后的反馈与改进

整个文档中,最大的部分其实是对功能需求的分解,但是最核心的部分是使用者需求与功能需求部分。使用Axure后,我发现Axure可以很好的承载我平常写的这个产品需求文档的全部内容,最主要的问题是,Axure是可以网状的展示的。下面是举个例子:

在Axure的站点导航中,默认的Home页面承担了PRD文档的第一部分内容;而使用者需求描述及任务流程图也可以由Axure自带的流程图功能完成;任务流页面的分解本来就是Axure中完成的;最后的非产品功能部分也可以由axure完成(文本块组件)

同时,Axure支持多种格式的输出,一般情况下我是发送给团队Html文件包,也可以是.chm格式的文件(团队协作目前还没有尝试)。该文件包打开后,左侧是整个系统的导航菜单,右侧是相应的说明。最主要在于,原型中的页面是可以相互跳转的(得益与axure的强大交互功能),同时页面有注释功能。所以,整个产品需求文档真正实现了基于产品的模拟,网状的传播,而不是Word式的树状阅读。

1)见过不少新手使用Axure生成的原型有页面是空白的,我问为什么,他说这个页面不知道放什么,但是又不能不命名,否则逻辑上有些不通。实际上,这个空白页面就可以用来放这个页面的流程图及整体的说明。

2)不建议做太复杂的Axure动作,比如使用多个层、动态面板等。因为在工程师等的眼里原型图是不可以点击的(基于viso等的惯性思维),所以,为了避免花很长时间去实现一个很炫的axure交互而最后被埋没,建议把任务分解来画。比如一个输入框,需要画:默认状态、获得焦点状态、输入字符判定状态、失去焦点状态等,按照逻辑分步来展示。(在我特别蛋疼的时候我会先分步展示,然后搞个比较炫的交互放在上面自己玩或者用于演示)

3)在每个页面的下方或者侧边(由页面大小来定)要放一个功能详解的文本块来对本页面的功能进行详细说明。也可以直接使用Axure自带的注释功能(组件注释、页面注释)为什么不推荐用Axure的组件注释功能?因为这个功能在生成的原型里是被隐藏的,有被人无视的可能。

4)使用axure组件库功能(可自制)和模块功能既可以保证设计的统一性(设计规范),又可以提高原型制作的效率。图中我采用了注册模块。

下面,QA时间(这个QA是问答,文中的QA是技术,呃,注意区分)

Q:为什么我看到有的书上说要写N多文档,带RD的有:BRD、MRD、PRD、….
A:是的,有这样的定义。BRD(商业需求文档)、MRD(市场需求文档)、PRD(产品需求文档)。每个公司的风格不一样,我个人倾向于把BRD与MRD整合,PRD单独做。但是MRD与PRD中会有内容重合,就是会同时提到用户是谁?为什么要做?产品目标是什么?等几个问题

Q:Axure有个功能是可以导成Word格式,把做的原型导入后是归类好的,包含了用例文档,为什么不这么玩呢?
A:没人说不可以这么玩。还是那句话,个人习惯。

Q:除了页面原型之外你塞了这么多东西到Axure里,会不会导致源文件以及生成的文件体积巨大?
A:实际上塞进去的东西都是文本,使用axure的文本组件完成的,体积并不会大。同时,请不要在用axure做原型的时候使用过多的图片,尽量是用组件和模块完成。我目前位置做的最大的一个原型是4.7M,这是一个完整的系统原型。

Q:按照你的写法Axure好像是万能的了?
A:没有不好用的工具,只有用的不顺手的人。人是活的,工具是死的,且Axure目前在mac平台下功能并非很强大,也有很多人觉得axure很笨重,更加喜欢轻量级的原型功能。不过,这些都不是核心问题,核心问题是要让你的团队能够以最高的效率进行合作。使用Axure的人不必鄙视Viso,用excel的人也不必羡慕OmniGraffle,拿Word的人也不必留恋firework。

既然提到了MRD也顺便说下我写这个文档的习惯。一般情况下这个文档是给老板看的,主要是对市场的分析、同类产品的竞品分析、我们产品的盈利预测等等。所以,一般由PPT来完成。你的文档越长老板越反感,你的文档文字越多老板越没兴趣,所以,PPT是最好的方式。

文档这个东西跟流程有类似的地方,大公司会相当重视这个事情,因为要规避风险。流程与文档的核心点在于如何高效传递如何快速执行而不是他如何写以什么形式写。相对于小团队而言,流程之殇大可避免。当然,如果大公司能够以小团队的心态去做大产品的话,定会事半功倍!我更相信小团队大产品的力量,而不是大团队大产品的说法。

那些销魂的原型

呃,这是一篇半扯淡式的回忆录,数一下咱曾经与现在使用过的画原型的工具。那篇“非炮灰不原型”的草稿还躺在草稿箱里,惭愧….

最开始,用Word以打表格的方式画;
更多小技巧可参考Junchen的这篇用Word画原型

后来,试试Viso;

更多小技巧参考山寨产品经理小宝的这篇用Viso制作线框图

然后,便于演示和简单效果的话可以用PPT;

使用PPT制作原型就是对交互动作进行分解,然后逐帧进行播放,这个比较适合进行演示,这里不在做图。

P.S:实际上我最近开始对Axure的交互动作有些许质疑,特别是使用很多动态面板的时候。这样许多交互步骤表面上被隐藏了,如果技术们不知道去 点,其他同事默认为线框图就是平面化的,那么,这些花费了很多经历做出来的交互动作就等于Zero!有的时候我常常会把一个交互动作进行分解,使用 Axure做出不同的状态,然后注明第一步的时候、第二步的时候…

其实,Excel也可以的;

(这张图来自Yahoo中国)

进化一下,用Axure

关于Axure,写的太多了,不再说。

偶尔新鲜点,玩玩Balsamiq Mockups等等(意味着以他为代表的一系列)…

关于这一系列的也太多,作罢,看高人们的介绍吧。

最后,最方便与快捷的方式其实是,纸!


(该原型由elya同学提供)

甚至是,餐巾纸!

于是,现在的方式是,先在纸上做出框架图和交互草图,然后,使用Web工具做出来。草图是为了整理思路,而Web原型是为了传递与交流。

P.S:当然还有N多种可以画线框图的方式,如photoshop、Dreamweaver、illustrator等等等等。工具是死的,人是活 的,工具是多样化的,没有最好的,只有最适合你的。如果纠结与工具,那人就变成了死的…

Axure之锚点跳转与Title提示

最近在做一个原型的时候用到锚点跳转与Title提示功能,同事看到HTML之后问我这个是怎么实现的;昨天又看到一篇文章举了个注册表单中的Title 提示示例,问这个是如何实现的,我才发现原来很多人都忽视了axure中一个很常用的组件——图片/图像映射区域(image map region)。
组件名称:image map region,图片/图像映射区域
组件介绍:在web页面中制造一片不可见的区域,相当于图片的热区,从而添加说明与互动。在现实的网页中经常会有一张大图中有某个区域是触发按钮,而图像映射区就可以用来说明这个区域的的功能和互动内容。
可实现功能:链接的Title提示图片的Alt提示锚点跳转。类动态面板功能。

1、Title提示和Alt提示功能实现
链接的Title提示和图片的Alt提示功能相对比较简单,其实只要简单说一下大家就都能明白了,只是平时没有注意罢了。
如上图所示,选择图像映射区域组件,覆盖在要映射的图像上方,右键点击“编辑工具提示”,输入Title的文本内容,OK。
其中,是否给该控件加注标签为可选项,如果不加注标签,则系统默认名称为“unlabeled”,不过,如果你需要使用锚点跳转功能的话则需要加注标签,中英文皆可。因为你要指定锚点的跳转位置,这个位置的判定就是以该标签的名称为准的。
PS:ALt和Title提示这个功能也可以用动态面板来实现,不过比较笨重,需要设置mouse on和mouse out两个交互动作。
2、同一页面内锚点跳转


如上图所示,先在要加入锚点的地方添加一个图像映射区域(操作方法如例1),这个图像映射区域必须要加注标签;在要实现跳转的链接上加到交互动作,动作选 择:滚动到图片映射区域;然后选择你要跳到的锚点位置,在下拉菜单中选择你刚才加注的那个标签名称;可以考虑选择滚动的方式;OK。
其中,必须要对图像映射区域加注标签页面的长度一定要足够锚点跳转,如果页面不够长他跳了你也看不到。
3、不同页面之间的锚点跳转


如上图所示,这里包含了2个方面的交互:A页面的组件a的交互、B页面(跳转到的页面)的页面交互。这个过程中我们需要借助一个中间变量(新增的变量1)。
点击线框图,管理变量,新增一个变量(例如1)——给锚点链接添加交互属性,也就是在离开页面A的时候需要先给变量赋值——在跳转到的页面(B)中添加页面交互(在OnPageLoad中添加):滚动到图片映射区域【注意,不是组件交互而是页面交互!】,OK。
这个过程的流程是这样的:点击链接a的时候也带入了一个变量1,当a动作完成后,如果在B页面还存在满足变量1的交互动作则继续执行,滚动到图像映射区域。
4、不同页面之间的切换层状态锚点跳转
这个需求是这样的,点击页面A中的链接a跳转到页面B中Tab模块T中的第二个tab 2中。
实际实现原理还是一样的,只不过是在对页面B的页面交互条件中再添加一个“设置动态面板状态跳转”就可以了,此时的条件变成同时满足:变量值为1 and 设置动态面板状态转换到T的tab2 and 滚动到图片映射区域。

PS:道理很简单所以就木有给出原型实例。我的axure使用的是5.6的汉化版本,汉化版本情况可以看这里

Axure动态面板的使用

1、什么是Axure的动态面板
按照
Axure官方网站的解释 :动态面板控件(Dynamic Panel)可以让你实现高级的交互功能,实现原型的高保真度。动态面板包含有多个状态(states),每个状态可包含一系列控件(你可以把一个状态理 解成一个独立的页面)。任何时候都只有一个状态(页面)是可见的,或整个动态面板可以被隐藏。结合交互动作,可以让动态面板的状态进行隐藏、显示和改变。 像添加其它控件一样,可以在控件面板中拖放动态面板控件到线框图中。
简单的说,动态面板就是展示在页面不跳转的情况下所能实现的交互状态。而动态面板的每一个状态都可以看作是产生的一个新的交互结果。

2、Axure的动态面板可以用来做什么
1)tab式页签的切换效果:Axure的官方给出的实例就是这个,AlipayUED的同学 按照官方给出的做法制作了一个3tab的原型,不愿看英文说明的同学可以直接参照这篇博客。
2)鼠标触发式和点击触发式的下拉菜单效果:这个可以结合Axure的默认组件中的“垂直菜单”、“水平菜单”来实现,常用于导航的原型制作。
3)鼠标触发式的浮窗效果:类似“Alt”的效果,常用于浏览提示和触发式广告。
4)JS的鼠标点击弹层效果:这个是目前使用被广泛使用的效果之一。
5)注册表单中的根据焦点判断提示的效果:当焦点在输入框内的时候提示该表单栏目填写规范,当焦点离开输入框的时候根据填写的结果提示正确或者错误原因,这个需要动用高级设计交互编辑功能结合Axure的逻辑条件和设置变量功能来实现。
….and so on…

3、如何使用Axure的动态面板
1)动态面板属于Axure的一个组件,在组件栏中选中它,直接拖到你希望它出现的位置。不用担心,即使在添加完状态之后它的位置也是可以随时改变的。
2)在动态面板上点击右键——编辑动态面板——管理动态面板状态。在弹出的窗口里输入动态面板的标签名称(默认是Unlabeled)、添加新的状态。当然,也可以在界面的右下角找到“动态面板管理”模块来对动态面板进行操作。
友情提示:
a)默认的动态面板的状态是显示(蓝色),我们可以把他设置成隐藏(黄色)。
b)状态页面中的蓝色虚线外框表示动态面板的边界范围,超过这个边界范围外的内容在最终生成原型时将不可见。
c)为了不影响其他交互的制作,可以点击“动态面板管理”模块右侧的淡蓝色小方块在隐藏或显示之间切换。或者,你可以在顶部的页面名称(如Home)上点击鼠标右键,选择右键菜单全部隐藏或全部显示,可以隐藏或显示页面中所有的动态面板。

3)双击添加完的动态面板状态(State1、2、…),会在Axure的工作区打开一个新标签。现在,把这个新标签当作是一个全新的页面来设计就OK了,不过,记住不要超过蓝色虚线外框。
4)给动态面板添加交互。Axure5.5中常用在动态面板上的交互行为包括:Set Panel state to State(设置动态面板的状态切换)、Show Panel(显示动态面板)、Hide Panel(隐藏动态面板)、Toggle Visibility for Panel(切换动态面板可见属性)、Move Panel(移动动态面板到一个设定的位置(x*y))、Bring Panel to Front(将动态面板置于最前)。交互行为的添加与添加其他组件的交互一样,没有什么好解释和介绍的。
5)生成HTML发布到web上、生成CHM分发给其他团队成员、建立Axure协作共享、….
友情提示:
a)使用
Axure汉化版本 会让你使用更轻松,虽然汉化的还不是非常完全,但是对于英文不好的同学来说已经是莫大的帮助了,向汉化的平生一笑 同学致敬!
b)如果看Axure官方的使用说明很费劲,可以参考目前陈良泳同学翻译的
快速原型设计 ,翻译质量很不错!
c)从Axure5开始,可以创建自己的组建库和导入别人做好的组建库了,官方提供了一套
雅虎的组件 ,个人觉得已经完全够用了。
d)模块和组件是2个完全不同的概念,模块的后缀是.rp而组件的后缀是.rplib。模块和组件之间是可以相互转化的,你可以利用组件去创建一些自己常用的模块如网站头部、底部等;你也可以把模块里的内容分拆成组件单个使用。
e)在生成chm格式的时候页面名称不要使用中文,中文名称的页面在chm里会显示成乱码。