1. 先搞清楚“函数自查表”到底解决什么原型设计问题
如果你在用 Axure 做高保真原型,特别是涉及到复杂交互逻辑、动态数据展示或者表单验证时,大概率会遇到一个头疼的问题:记不住函数,或者用错了函数。比如,你想让一个文本框只显示姓名的首字母大写,是该用[[LVAR.toUpperCase()]]还是[[LVAR.toUpper()]]?又或者,你想计算购物车总价,用[[Item1+Item2]]和用[[Item1.add(Item2)]]结果可能完全不同。
“函数自查表”这个高保真原型项目,解决的正是这个痛点。它不是一个教你写代码的教程,而是一个放在 Axure 原型文件里、能随时点开查看和测试的交互式函数参考手册。它的核心价值在于:让你在原型设计过程中,无需离开 Axure 环境,无需反复打开浏览器搜索,就能快速验证一个函数的语法、参数和返回值。
这特别适合两类人:
- Axure 中级使用者:已经会用变量和基础交互,但一到复杂计算或字符串处理就卡壳,需要快速查阅。
- 团队协作的负责人或新人导师:需要统一团队内的交互逻辑实现方式,有一个内置的“规范手册”能极大减少沟通成本。
很多人误以为高保真就是“画得像”,其实真正的难点在于“动得对”。函数自查表帮你解决的,就是让“动”的逻辑更准确、更高效。
2. 在 Axure 里搭建自查表:环境与核心思路
在动手之前,先明确一点:Axure RP 9 或 Axure RP 10 都支持,关键在于思路,而不是某个特定版本。网上那些搜“axure rp9破解版”、“axure免费永久激活”、“axure 9的秘钥”的热词,我建议你直接忽略。用正版或官方试用版,稳定性是第一位的,避免做到一半因为软件崩溃而前功尽弃。
这个自查表的本质,是一个高度结构化的、可交互的 Axure 页面。它通常包含以下几个核心区域,我们可以用一个表格来规划:
| 区域 | 功能 | 实现元件 |
|---|---|---|
| 函数分类导航 | 按用途(如字符串、数学、日期)快速筛选函数。 | 动态面板(不同状态对应不同分类)、或矩形按钮组。 |
| 函数列表/搜索 | 展示当前分类下的所有函数,支持关键词(如“upper”)搜索。 | 中继器,每一行是一个函数名。 |
| 函数详情展示区 | 点击函数名后,动态显示该函数的描述、语法、参数说明。 | 多个文本标签、矩形组合,内容由动态面板或中继器控制。 |
| 实时测试沙盒 | 提供输入框和按钮,允许用户输入测试值,点击后立即看到函数运行结果。 | 输入框、按钮、用于显示结果的文本标签。 |
| 示例代码区 | 展示1-2个该函数的典型应用场景代码片段,可直接参考。 | 多行文本输入框(设置为只读)或文本标签。 |
核心交互逻辑是:点击导航分类 -> 过滤中继器显示对应函数列表 -> 点击某个函数 -> 右侧详情区更新为该函数信息,同时测试沙盒清空或重置为默认值 -> 用户在测试输入框输入值 -> 点击“测试”按钮 -> 结果区显示应用该函数后的值。
这个思路和那些搜索热词里提到的“axure rp extension for chrome”或“axure中点击文字弹出pdf文件”完全不同。我们追求的是内嵌、实时、可交互,而不是跳转到外部资源,这保证了查阅流程的流畅性。
3. 分步构建:从框架到可交互的细节
下面我们抛开抽象概念,一步步拆解如何用 Axure 的原生功能把这个自查表做出来。我会假设你已有 Axure 基础,重点讲实现自查表特有的部分。
3.1 第一步:搭建静态框架与数据中继器
首先,新建一个页面,命名为“函数自查表”。按照上面表格的规划,用矩形、线条划分出导航区、列表区、详情区、测试区。
最关键的一步是创建“函数库”中继器。
- 拖入一个“中继器”元件,命名为
Repeater_FunctionList。 - 双击进入中继器,你会看到默认的三列(Column0, Column1, Column2)。我们不需要这么多,右键点击列名,选择“删除列”,只保留一列,重命名为
FunctionName。 - 在中继器外,我们还需要存储更多信息。所以回到中继器数据集,点击“+”号,新增多列。一个完整的函数条目至少需要以下列:
Category:函数分类,如“字符串”、“数学”、“日期”。FunctionName:函数名,如“toUpperCase”、“add”。Description:函数描述,如“将字符串转换为大写”。Syntax:语法,如“[[LVAR.toUpperCase()]]”。ParamDesc:参数描述,如“无参数”。Example:使用示例,如“[[OnLoadVariable]]的值为 ‘hello’,则[[OnLoadVariable.toUpperCase()]]返回 ‘HELLO’”。
现在,在中继器数据集中手动录入几条数据,这是你的“知识库”:
| Category | FunctionName | Description | Syntax | ParamDesc | Example |
|---|---|---|---|---|---|
| 字符串 | toUpperCase | 将字符串转换为大写 | [[LVAR.toUpperCase()]] | 无参数 | [[‘abc’.toUpperCase()]]=> ‘ABC’ |
| 字符串 | charAt | 返回指定位置的字符 | [[LVAR.charAt(index)]] | index: 数字,字符位置(从0开始) | [[‘Axure’.charAt(1)]]=> ‘x’ |
| 数学 | add | 数字相加 | [[LVAR.add(value)]] | value: 要加的数字 | [[5.add(3)]]=> 8 |
| 数学 | ceil | 向上取整 | [[Math.ceil(LVAR)]] | LVAR: 数字 | [[Math.ceil(4.2)]]=> 5 |
注意:Axure的函数有时是变量方法(如
LVAR.toUpperCase()),有时是全局函数(如Math.ceil())。在Syntax列里要准确写出,这是自查表的核心价值。
3.2 第二步:实现分类导航与列表过滤
- 创建导航按钮:在导航区放置几个矩形,文字分别是“全部”、“字符串”、“数学”、“日期”等。每个矩形设置一个交互:“单击时” -> “设置选中” -> “当前元件” -> “值” ->
true。同时,为它们设置“选中”的交互样式(如变色),以便用户知道当前在哪个分类。 - 关联过滤:以“字符串”按钮为例,为其“单击时”事件再添加一个动作:“更新行” -> 目标中继器
Repeater_FunctionList-> 选择“过滤器” -> 输入规则[[Item.Category == ‘字符串’]]。 “全部”按钮的过滤器规则留空或设为[[true]]即可。 - 显示列表:回到中继器内部,默认有一个矩形。将其文本设置为
[[Item.FunctionName]]。这样,当中继器数据被过滤后,这里就会显示对应分类的函数名列表。 - 实现搜索:在列表区上方加一个“单行文本框”作为搜索框。为其“文本改变时”事件添加交互:“更新行” -> 过滤规则为
[[Item.FunctionName.indexOf(LVAR.text) >= 0]]。LVAR.text指搜索框的文本。这个规则的意思是“显示函数名中包含搜索文本的所有项”。
3.3 第三步:实现点击函数名显示详情与测试
这是最体现“高保真”和“交互性”的一步。
- 设置详情区元件:在详情区,放置多个文本标签,分别命名为
Label_Name,Label_Desc,Label_Syntax,Label_Param,Text_Example(可以用多行文本输入框并设为只读,方便显示多行代码)。 - 为中继器内的函数名矩形添加交互:选中中继器内那个显示
[[Item.FunctionName]]的矩形,添加“单击时”交互。- 第一步,设置全局变量:将当前行的数据存入全局变量,方便其他区域调用。
- “设置变量值” -> 变量
CurrentFuncName=[[Item.FunctionName]] - “设置变量值” -> 变量
CurrentFuncSyntax=[[Item.Syntax]] - (同理,设置
CurrentFuncDesc,CurrentFuncParam,CurrentFuncExample)
- “设置变量值” -> 变量
- 第二步,更新详情区显示:
- “设置文本” -> 目标
Label_Name-> 值[[CurrentFuncName]] - “设置文本” -> 目标
Label_Desc-> 值[[CurrentFuncDesc]] - (同理,更新其他标签)
- “设置文本” -> 目标
- 第三步,重置测试沙盒(可选但很贴心):
- “设置文本” -> 目标“测试输入框” -> 值
‘’(空) - “设置文本” -> 目标“结果显示框” -> 值
‘’(空)
- “设置文本” -> 目标“测试输入框” -> 值
- 第一步,设置全局变量:将当前行的数据存入全局变量,方便其他区域调用。
- 构建测试沙盒:
- 放一个“单行文本框”,命名为
InputBox_Test。 - 放一个“按钮”,文字为“执行测试”。
- 放一个“文本标签”,命名为
Label_TestResult,用于显示结果。
- 放一个“单行文本框”,命名为
- 为“执行测试”按钮添加交互:这是动态执行函数的关键。
- “单击时” -> “设置文本” -> 目标
Label_TestResult。 - 值的设置是难点。你不能直接写
[[InputBox_Test.text.toUpperCase()]],因为函数名是动态的。 - 这里需要一点技巧:利用 Axure 的
[[‘字符串’]]拼接和eval()函数(如果目标函数是全局的,如Math.ceil,可能需要更复杂的处理)。一个相对通用的方法是,为常见的几类函数预设处理逻辑。 - 示例:处理
toUpperCase这类字符串方法- 在按钮的交互用例里,添加“条件”:
- 如果
[[CurrentFuncName]]==‘toUpperCase’ - 则,设置
Label_TestResult文本为[[InputBox_Test.text.toUpperCase()]]
- 如果
- 再添加一个用例:
- 如果
[[CurrentFuncName]]==‘add’ - 则,设置
Label_TestResult文本为[[InputBox_Test.text.add(‘3’)]](这里假设加3,更复杂的可以再做输入框)
- 如果
- 在按钮的交互用例里,添加“条件”:
- 虽然这需要为每个函数写一个用例,但一旦建成,测试体验是无缝的。对于
Math.ceil这类,可以拼接字符串[[‘Math.ceil(’ + InputBox_Test.text + ‘)’]],但 Axure 可能无法直接执行这个拼接后的字符串为函数。更稳妥的方法是,在“示例代码区”给出可直接复制的代码,测试区则专注于演示核心函数的简单应用。
- “单击时” -> “设置文本” -> 目标
避坑提示:Axure 的交互逻辑不支持像 JavaScript 的
eval()那样动态解析并执行任意字符串形式的函数调用。因此,我们的“实时测试沙盒”更多是针对高频、核心函数进行预置演示。这并不影响自查表的核心查阅功能,但实现了最实用的“即看即试”效果。
3.4 第四步:优化体验与视觉呈现
- 默认状态:页面加载时,触发中继器过滤“全部”函数,并默认选中第一行函数,自动显示其详情。这可以通过在页面“页面载入时”事件中模拟点击第一个函数矩形来实现。
- 高亮当前选中函数:为中继器内的矩形设置“选中”交互样式。在点击函数名矩形的交互中,增加“设置选中”动作,选中当前行。这样列表就有焦点指示了。
- 使用动态面板管理详情区:如果不同函数的详情结构差异很大(比如有的函数有多个参数说明),可以用动态面板的不同状态来承载不同的布局,点击函数时切换面板状态。
- 引入图标:从图标网站下载一些 SVG 图标,代表不同分类(如“Abc”代表字符串,“Σ”代表数学),让导航更直观。
4. 超越基础:让自查表更“智能”与实用
一个基础的自查表已经完成了。但如果想让它在团队中真正发挥作用,或者提升个人效率,还需要下面这些进阶考量。
4.1 如何应对“我记不住函数名”的场景
搜索热词里有很多像“python中upper函数有什么用”、“excel sumifs函数的使用”这样的问题,本质是用户只记得功能关键词,不记得准确函数名。我们的自查表可以通过强化“描述搜索”来应对。
- 为数据集增加“关键词”列:在
Repeater_FunctionList的数据集中,新增一列Keywords。比如toUpperCase函数,可以填入“大写,转换,upper”。 - 改造搜索逻辑:将搜索框的过滤规则从只搜索
FunctionName,改为同时搜索Keywords和Description。
这样,用户输入“大写”,也能找到[[Item.FunctionName.indexOf(LVAR.text)>=0 || Item.Keywords.indexOf(LVAR.text)>=0 || Item.Description.indexOf(LVAR.text)>=0]]toUpperCase函数。
4.2 集成外部知识与复杂示例
热词中提到了“axure rp9引入echarts流程”,这属于高级图表集成。你的自查表可以包含这类复杂场景的“配方”。
- 创建“高级用例”页面或动态面板:在自查表页面内,可以增加一个“高级示例”选项卡或区域。
- 用例作为特殊“函数”:在中继器里新增一条记录:
Category: “高级图表”FunctionName: “集成ECharts”Description: “在Axure原型中动态展示ECharts图表”Syntax: “(此为流程,非单一函数)”Example: 这里不放代码,放一个按钮“查看实现步骤”。
- 点击按钮展示详细流程:为这个按钮设置交互,显示一个隐藏的动态面板,里面用图文步骤详细说明:如何准备HTML文件、如何放置内联框架、如何通过Axure交互向框架传递数据等。这相当于把一篇外部教程的核心步骤内化到了你的原型工具里。
4.3 团队共享与维护
- 制作.rplib元件库:将整个“函数自查表”页面(或其主要框架)制作为一个自定义元件库(.rplib文件)。团队成员只需加载这个库,就可以像拖拽标准元件一样,把完整的自查表拖入他们的原型项目中。
- 维护中央数据源:团队可以共享一个在线的中继器数据集文件(如.csv),或者约定由一个人维护主原型文件,定期导出中继器数据分发给其他人更新。这确保了所有人查阅的都是最新、最全的函数参考。
- 版本说明:在自查表角落添加一个版本号文本标签,当函数库更新(如Axure版本升级新增函数)时,更新版本号,方便团队同步。
5. 排查与优化:当你的自查表“不工作”时
即使按照步骤搭建,也可能遇到问题。别急着重做,按这个顺序排查:
中继器列表不显示或显示错误:
- 检查数据列名:首先确认中继器内矩形绑定的列名(如
[[Item.FunctionName]])和数据集的列名完全一致,包括大小写。 - 检查过滤条件:点击导航按钮时,打开“交互”面板,检查“更新行”动作里的过滤器条件。条件语句必须正确,比如
[[Item.Category == ‘字符串’]],引号必须是英文的,字符串值必须和数据集中完全匹配。 - 预览看效果:很多过滤问题在编辑模式看不出,必须生成HTML预览(F5)才能看到真实效果。
- 检查数据列名:首先确认中继器内矩形绑定的列名(如
点击函数名,详情区没反应:
- 检查变量名:确认设置全局变量时(
CurrentFuncName,CurrentFuncSyntax等),变量名在后续的“设置文本”动作中被正确引用。 - 检查目标元件:确认“设置文本”动作的目标,是你想更新的那个文本标签或输入框,名称不要选错。
- 检查交互顺序:确保“单击时”的用例里,先“设置变量”,再“设置文本”。逻辑顺序错误会导致文本设置时变量还是旧值。
- 检查变量名:确认设置全局变量时(
测试沙盒执行结果不对或报错:
- 检查输入值类型:
add函数需要数字,如果你在输入框输入了“abc”,执行[[‘abc’.add(‘3’)]]肯定会出错。在测试区的说明里,最好提示用户输入正确的数据类型。 - 简化测试用例:对于动态执行,初期不要追求完美。可以只为2-3个核心函数(如
toUpperCase,add)编写固定的测试逻辑,确保这条路能走通。其他函数可以先在“示例”区提供准确的代码片段,测试区暂时留空或显示“请参考示例代码”。 - 查看浏览器控制台:生成预览后(F5),按F12打开浏览器开发者工具,切换到“Console”(控制台)。当交互执行出错时,这里会有红色的JavaScript错误信息,能帮你精准定位问题。
- 检查输入值类型:
原型文件卡顿或加载慢:
- 优化中继器数据:如果录入了几百个函数,每次过滤可能会有些延迟。可以考虑按分类拆分成多个中继器,或者使用动态面板的“隐藏/显示”来代替中继器过滤。
- 减少不必要的动画:避免为列表切换、详情展示添加复杂的淡入淡出、移动动画,这些在高保真原型中有时会影响响应速度。
6. 边界与扩展:它不是什么,以及还能是什么
最后,明确一下这个“函数自查表”高保真原型的边界和潜力,避免不切实际的期待。
它不是一个:
- Axure 编程环境:它不能像 IDE 一样调试代码或智能提示。
- 全自动代码生成器:它提供参考和测试,但最终代码仍需你手动写入 Axure 的交互编辑器。
- 所有函数的百科全书:Axure 的函数也在更新,你需要手动维护这个列表。它更像一个“个人/团队知识沉淀库”。
但它可以扩展为:
- 交互模式库:除了函数,还可以收录常见的交互模式,如“轮播图”、“下拉筛选”、“分页加载”的实现步骤和关键交互设置。
- 设计系统文档:结合 Axure 的样式、母版功能,自查表可以展示颜色变量、字体规范、组件使用说明等。
- 项目规范门户:在一个原型文件里,集成设计规范、交互规范、常用函数、组件库链接,成为项目团队的“原型开发一站式入口”。
我个人更建议,先从解决自己最常忘记的10个函数开始,搭建一个最小可用的自查表。用起来之后,你会自然发现哪些地方需要优化,哪些函数需要补充。这个过程本身,就是对 Axure 交互逻辑一次极好的深度学习。当你能为自己或团队打造这样一件趁手的“兵器”时,高保真原型设计的效率和质量,自然就上了一个台阶。