Axure RP 9高保真原型设计:实现可预览的搜索关键词高亮交互模板
2026/8/19 3:18:46 网站建设 项目流程

在原型设计工作中,我们经常需要模拟一个核心且高频的用户交互场景:搜索并高亮结果。无论是后台管理系统的数据筛选、内容平台的站内搜索,还是电商的商品查找,一个能清晰反馈搜索状态、直观展示匹配项的高保真原型,对于提升设计评审质量、精准传达交互逻辑至关重要。然而,仅靠静态线框图或简单的跳转,很难让产品经理、开发和测试同学直观理解“搜索中”、“无结果”、“结果高亮”等动态过程。

本文将手把手带你从零开始,在 Axure RP 9 中制作一个功能完整、交互流畅的“高亮搜索”高保真原型模板。这个模板将实现:实时搜索、关键词高亮、结果计数、清空功能,并且完全在 Axure 的编辑页面中即可预览交互状态,无需反复在浏览器中切换。无论你是刚接触 Axure 的新手,还是想提升原型表现力的资深设计师,都能通过本文获得一套可直接复用的解决方案。

1. 核心概念与设计目标

在深入制作之前,我们首先需要明确“高保真原型”和“高亮搜索”在这个上下文中的具体含义,并设定清晰的设计目标。

1.1 什么是“高亮搜索”原型?

“高亮搜索”原型,特指在原型中模拟的搜索功能,它不仅包含输入框和按钮,更重要的是能对搜索结果列表中的文本内容进行视觉强化,通常是将用户输入的关键词改变颜色或背景,使其在列表中一目了然。

它与普通搜索原型的区别:

  • 普通搜索:点击“搜索”后,页面跳转或动态面板切换至一个静态的“搜索结果页”,所有结果项外观一致。
  • 高亮搜索:在结果展示的同时,系统能自动识别并高亮(如标黄、加粗、变红)结果文本中与关键词匹配的部分,极大地提升了原型的真实感和演示效果。

1.2 为何要在 Axure 编辑页面预览状态?

根据网络上的常见问题(如“在编辑页面中如何实现可以展示状态而不是只能在浏览器中预览查看效果”),很多 Axure 使用者发现,一些复杂的交互(尤其是涉及文本操作和动态面板状态切换的)在 Axure 的编辑器中无法直接触发查看,必须生成 HTML 在浏览器中预览,这严重影响了设计效率。

本模板的设计目标之一,就是解决这个问题。我们将利用 Axure 的内置交互和元件,构建一个完全在编辑页面内可操作、可预览的高亮搜索原型。你将能直接在 Axure 工作区测试输入、搜索、高亮、清空等所有功能,实现真正的“所见即所得”。

1.3 模板最终效果与功能清单

我们将要制作的模板包含以下核心功能:

  1. 搜索输入框:支持输入文本,带有占位符提示。
  2. 搜索按钮:点击触发搜索逻辑。
  3. 实时搜索反馈
    • 搜索中状态:点击按钮后,按钮文字变为“搜索中...”,并可能伴有加载动画(简易版)。
    • 结果计数:显示“共找到 X 条结果”。
    • 无结果提示:当没有匹配项时,显示友好的无结果提示。
  4. 结果列表与关键词高亮:在一个列表或多个文本标签中,将匹配到的关键词进行高亮显示(例如,黄色背景)。
  5. 清空功能:一键清空输入框和搜索结果,恢复初始状态。
  6. 编辑页内直接交互:所有上述功能,在 Axure RP 9 的编辑界面中,通过“预览”面板(F5)或直接点击交互热点即可触发和查看,无需导出到浏览器。

2. 环境准备与 Axure 基础

在开始构建之前,请确保你的操作环境已就绪,并了解我们将使用到的核心 Axure 功能。

2.1 软件版本与元件准备

  • Axure RP 版本:本文基于Axure RP 9进行演示,其交互逻辑在 RP 10 中同样适用。请确保你使用的是正版或已正确授权的软件。网络上关于“axure rp9授权密钥”、“axure免费永久激活”等讨论涉及版权风险,建议通过官方渠道获取。
  • 核心元件:我们将主要使用以下 Axure 内置元件:
    • 矩形:作为输入框、按钮、结果项的背景。
    • 文本框(单行):作为搜索输入框,这是实现交互的关键。
    • 文本标签:用于显示静态文字、动态结果计数、结果列表项。
    • 动态面板:用于管理搜索按钮的不同状态(如默认、搜索中)、以及结果列表区域的显示与隐藏。
  • 命名规范:这是大型原型项目保持清晰的关键。我们将为每个重要的元件起一个清晰的名称,例如:
    • 输入框:SearchInput
    • 搜索按钮:SearchButton
    • 结果列表动态面板:ResultPanel
    • 结果计数标签:ResultCount

2.2 Axure 交互事件与函数简介

我们将用到几个关键的交互事件和函数:

  • 事件
    • OnClick:元件被鼠标单击时触发。
    • OnTextChange:文本框内容发生改变时触发(可用于实现实时搜索,本文为简化使用按钮触发)。
    • OnSelectionChange:对于下拉列表等,选项改变时触发。
  • 动作
    • Set Text:设置元件的文本内容。
    • Set Panel State:设置动态面板到指定状态。
    • Show/Hide:显示或隐藏元件。
    • Set Focus:为元件设置焦点。
  • 函数与变量
    • 局部变量:在交互动作中临时存储值,如获取输入框的文字[[This.text]]
    • 元件文字[[This.text]][[Target.text]]
    • 字符串函数:虽然 Axure 原生不支持复杂的字符串查找和替换高亮,但我们可以通过巧妙的交互逻辑来模拟。

3. 项目结构搭建与静态界面设计

让我们开始动手创建。首先,搭建基本的界面布局。

3.1 创建页面与布局

  1. 在 Axure 中创建一个新的页面,命名为HighlightSearchTemplate
  2. 从左侧元件库拖拽一个“文本框(单行)”到画布上,作为搜索框。调整其大小和样式,并设置提示文字(Placeholder)为“请输入关键词...”。在右侧样式面板中,将其命名为SearchInput
  3. 在搜索框旁边放置一个“矩形”,作为搜索按钮。输入文字“搜索”,调整样式(如背景色、圆角)。命名为SearchButton
  4. 在搜索按钮旁边再放置一个小的“矩形”或“文本标签”,输入文字“清空”,命名为ClearButton
  5. 在搜索区域下方,放置一个“文本标签”,用于显示结果计数,例如“共找到 0 条结果”。命名为ResultCount
  6. 在结果计数下方,放置一个“动态面板”。这个动态面板将用来承载搜索结果列表和无结果提示两种状态。
    • 选中该动态面板,在右侧属性面板中,将其命名为ResultPanel
    • 双击动态面板,进入状态管理。它默认有一个状态State1,我们将其重命名为ResultListState
    • 点击“+”号,新增一个状态,命名为NoResultState

3.2 设计动态面板的两种状态

现在我们来设计ResultPanel的两个状态。

  1. 设计ResultListState(结果列表状态)

    • ResultListState中,我们将放置多个“文本标签”元件,垂直排列。这些标签将模拟搜索结果项。例如,你可以创建5个文本标签,内容分别为:
      • “Axure RP 9 高保真原型设计教程”
      • “如何实现搜索关键词高亮效果”
      • “动态面板在交互设计中的高级应用”
      • “Axure 函数与变量的使用指南”
      • “制作可复用的原型组件库”
    • 全选这些文本标签,在右侧样式面板中,给它们设置一个统一的样式名称,例如ResultItem。这虽然不是 Axure 的“组”,但有助于我们识别。或者,你也可以将它们组合(Ctrl+G),命名为ResultItemGroup注意:组合后,交互设置会稍有不同。
  2. 设计NoResultState(无结果状态)

    • 切换到NoResultState
    • 在此状态中,放置一个图标(可以用矩形模拟)和一个文本标签,文字内容为“未找到相关结果,请尝试其他关键词。”。命名为NoResultHint

至此,静态界面和容器已经搭建完毕。接下来是最核心的交互逻辑部分。

4. 核心交互逻辑实现

我们将分步为各个元件添加交互,实现搜索、高亮、状态切换的完整链条。

4.1 为“搜索按钮”添加交互 - 触发搜索流程

选中SearchButton(搜索按钮),在右侧“交互”面板中,点击“新建交互”。

  • 事件:选择OnClick(鼠标单击时)。
  • 动作:我们需要一系列动作,步骤如下:

步骤1:模拟“搜索中”状态

  • 添加动作Set Text
  • 配置:将SearchButton的文本设置为“搜索中...”。这给用户一个即时反馈。

步骤2:获取搜索关键词并判断

  • 我们需要添加一个“条件”。
  • 点击交互用例描述下方的“添加条件”。
  • 条件设置:如果SearchInput的“文字”“不等于”“”(空)。即,如果输入框不是空的。
    • 满足条件时

      1. 设置结果计数:添加动作Set Text,设置ResultCount的文本为“正在搜索...”。(稍后我们会更新为准确数字)。
      2. 触发高亮逻辑:这是最关键的一步。由于 Axure 无法直接操作文本格式,我们需要一个“模拟高亮”的方案。方案A:通过切换文本实现。我们可以准备两套结果:一套原始文本,一套已高亮文本(需提前制作)。但更动态的方案是方案B:利用矩形遮罩
      3. 方案B实施(推荐)
        • ResultListState中,为每一个结果项(ResultItem),我们需要预先做一些准备。假设我们搜索“Axure”。
        • 对于文本“Axure RP 9 高保真原型设计教程”,我们复制一份相同的文本,但将“Axure”这几个字的颜色改为红色(或背景色改为黄色)。然后,将红色版本的文本标签,直接覆盖在原始文本标签之上,并将其默认隐藏
        • 那么,在交互中,当关键词匹配时,我们的动作就是:Show高亮版本的文本标签,Hide原始版本的文本标签。
        • 然而,这对多个结果和任意关键词不通用。因此,为了教程的通用性和可复制性,我们采用一种更简洁的模拟方法:整体替换文本内容,并在文字中用括号或星号标注“高亮”。例如,将结果项文本设置为“<span style=‘background-color: yellow;’>Axure RP 9 高保真原型设计教程”。但 Axure 文本框不支持 HTML。所以,我们最终采用“伪高亮”:用[[ ]]包裹关键词。例如:“[[Axure]]RP 9 高保真原型设计教程”。
        • 具体动作:添加动作Set Text,对每一个ResultItem,将其文本设置为一个公式结果。我们需要用到replace函数吗?Axure 默认没有。所以,我们简化处理,假设我们只搜索“Axure”。那么动作可以写成:
          设置文本于 ResultItem1 为 “[[Axure]] RP 9 高保真原型设计教程”
          (实际上,我们需要用局部变量获取输入框文本,这里为了演示逻辑先写死)。
      4. 显示结果面板并切换到列表状态:添加动作Set Panel State,设置动态面板ResultPanel为状态ResultListState。再添加动作Show,显示ResultPanel(如果之前隐藏了)。
      5. 更新结果计数:添加动作Set Text,设置ResultCount的文本为“共找到 X 条结果”,其中 X 需要计算。我们可以通过另一个交互来统计显示出来的结果项数量。这里我们先假设找到3条,写死为“共找到 3 条结果”。
      6. 恢复按钮文字:添加动作Set Text,将SearchButton的文本恢复为“搜索”。
    • 不满足条件时(输入框为空):

      1. 提示用户输入:可以设置ResultCount的文本为“请输入搜索关键词”。
      2. 恢复按钮文字:将SearchButton的文本恢复为“搜索”。

步骤3:添加延迟模拟网络请求为了让“搜索中”状态更真实,可以在“设置按钮文字为‘搜索中...’”和“执行搜索逻辑(设置结果文本等)”之间,插入一个Wait(等待)动作,例如等待500毫秒。

由于在 Axure 中实现真正的动态文本高亮逻辑非常复杂,涉及大量自定义变量和循环,不适合作为通用模板。上述步骤2中的方案是一个简化演示。接下来,我将给出一个更实用、可复制且能在编辑页面预览的完整方案

5. 完整实战方案:基于动态面板与元件显隐的“高亮”模拟

我们放弃复杂的文本处理,采用一个取巧但视觉效果清晰的方法:为每个可能被高亮的词,预先制作一个“高亮背景”矩形,通过交互来控制它的显示与隐藏。

5.1 重新准备结果列表项

  1. ResultPanelResultListState中,我们创建第一个结果项。
  2. 拖入一个文本标签,输入“Axure RP 9 高保真原型设计教程”。命名为ResultText_1
  3. 在“Axure”这个词的位置上,绘制一个矩形,覆盖住“Axure”这个词。设置其填充颜色为黄色,边框无。关键一步:右键这个黄色矩形,选择“转换为动态面板”。将这个小的动态面板命名为Highlight_1_1(表示第一个结果项的第一个高亮词)。进入这个动态面板,它有一个状态,我们在这个状态里什么都不用放,它只是作为一个容器。
  4. Highlight_1_1动态面板的透明度设置为60%,使其看起来像背景高亮。然后,将其置于底层(右键 -> 顺序 -> 置于底层),确保文本标签ResultText_1在它之上。
  5. 默认隐藏Highlight_1_1
  6. 重复步骤2-5,为其他结果项和其中的关键词(如“高亮”、“动态面板”、“Axure”、“函数”)也创建对应的文本标签和隐藏的高亮动态面板。例如:
    • ResultText_2: “如何实现搜索关键词高亮效果”
      • Highlight_2_1(覆盖“高亮”)
    • ResultText_3: “动态面板在交互设计中的高级应用”
      • Highlight_3_1(覆盖“动态面板”)
    • ……

5.2 改造搜索按钮的交互逻辑

现在,我们修改SearchButtonOnClick交互。

  • 事件OnClick

  • 用例Case 1(如果输入框非空)

  • 条件SearchInput文字 != “”

  • 动作序列

    1. Set TextSearchButton-> “搜索中...”
    2. Wait:500ms
    3. Set Panel StateResultPanel->ResultListState
    4. ShowResultPanel
    5. 核心逻辑:根据输入关键词显示对应高亮
      • 我们需要判断输入框里是什么词,然后显示对应的高亮面板。
      • 添加动作Set TextResultCount-> “正在匹配关键词...”
      • 由于 Axure 交互条件无法进行字符串包含判断,我们这里用多个条件分支来模拟。这是本模板的关键技巧,虽不智能但完全可控且在编辑页可预览。
      • 添加另一个条件用例:在OnClick事件下,点击“添加用例”。
      • 用例Case 2:如果SearchInput文字==“Axure”
        • ShowHighlight_1_1,Highlight_4_1(假设第4条结果也有Axure)...
        • Hide:其他所有高亮面板(如Highlight_2_1,Highlight_3_1...)
        • Set TextResultCount-> “共找到 2 条结果”
      • 用例Case 3:如果SearchInput文字==“高亮”
        • ShowHighlight_2_1
        • Hide:其他所有高亮面板
        • Set TextResultCount-> “共找到 1 条结果”
      • 用例Case 4:如果SearchInput文字==“动态面板”
        • ShowHighlight_3_1
        • Hide:其他所有高亮面板
        • Set TextResultCount-> “共找到 1 条结果”
      • 用例Case 5:如果以上都不匹配(即SearchInput文字不是我们预设的几个词)
        • Set Panel StateResultPanel->NoResultState
        • Set TextResultCount-> “共找到 0 条结果”
    6. Set TextSearchButton-> “搜索”
  • 用例Case 6(如果输入框为空)

    • 条件:SearchInput文字==“”
    • 动作:
      1. Set TextResultCount-> “请输入搜索关键词”
      2. HideResultPanel
      3. Set TextSearchButton-> “搜索” (如果之前变了)

5.3 实现清空功能

选中ClearButton(清空按钮),添加OnClick交互。

  • 动作序列
    1. Set TextSearchInput-> “” (空值)
    2. Set TextResultCount-> “共找到 0 条结果”
    3. HideResultPanel
    4. Hide所有高亮动态面板 (Highlight_1_1,Highlight_2_1, ...)。(这一步确保清空后高亮消失)。
    5. Set FocusSearchInput(将焦点移回输入框,方便再次输入)。

6. 在编辑页面预览与测试

至此,所有交互设置完成。

  1. 不要关闭 Axure。
  2. F5键,或在菜单栏点击“发布” -> “预览”,会弹出 Axure 自带的预览窗口。
  3. 在预览窗口中:
    • SearchInput输入框里点击,输入“Axure”。
    • 点击SearchButton。你会看到按钮文字变成“搜索中...”,500毫秒后,结果区域显示,并且第一条和第四条结果中的“Axure”一词被黄色背景高亮。ResultCount显示“共找到 2 条结果”。
    • 尝试输入“高亮”、“动态面板”进行搜索。
    • 尝试输入一个不存在的词,如“测试”,会显示“未找到相关结果”的状态页。
    • 点击ClearButton,所有内容被清空,恢复初始状态。

恭喜!你已经成功在 Axure RP 9 的编辑环境内,创建并测试了一个功能完备的“高亮搜索”高保真原型模板。所有交互都在预览窗口中实时发生,无需生成 HTML 到浏览器。

7. 常见问题与排查思路

在制作过程中,你可能会遇到以下问题:

问题现象可能原因解决思路
点击搜索按钮没反应1. 交互事件未正确绑定到OnClick
2. 元件命名有误,动作目标错误。
3. 动态面板状态名称不匹配。
1. 检查按钮的交互面板,确认有OnClick用例。
2. 逐一检查动作中的目标元件名称,确保与画布上的元件名称完全一致(区分大小写)。
3. 检查Set Panel State动作中选择的状态名是否存在。
高亮矩形遮挡了文字高亮矩形(动态面板)被置于文字上层。右键点击高亮矩形动态面板,选择“顺序” -> “置于底层”。确保文字标签在它之上。
清空后,再次搜索相同关键词高亮不显示清空交互中只隐藏了结果面板,但未隐藏高亮面板。当再次搜索时,高亮面板本身已经处于显示状态,Show动作无效。在清空按钮的交互中,增加Hide所有高亮面板的动作。或者,在搜索按钮交互的一开始,先统一Hide所有高亮面板,再根据条件Show对应的。
预览时交互效果和预期不符交互逻辑的条件判断顺序有误。Axure 会按用例顺序执行,第一个条件满足的用例会执行。调整用例的顺序。将最具体的条件(如等于“Axure”)放在前面,将通用条件(如不等于空)或默认条件放在后面。
结果计数不准更新结果计数的Set Text动作,被放在了某个条件分支里,而其他分支没有更新。确保在每一个可能的结果路径(找到结果、无结果)的最后,都设置了正确的ResultCount文本。

8. 最佳实践与进阶优化建议

上面的模板是一个基础可用的版本。在实际项目中,你可以根据需求进行增强和优化。

8.1 交互设计最佳实践

  1. 命名规范是生命线:对于复杂的原型,像SearchInputBtn_SearchDP_ResultsHL_Axure_1这样的命名约定能极大提升维护效率。建议使用前缀(如Btn_,Txt_,Dp_,Pnl_)来区分元件类型。
  2. 使用母版:如果你需要在多个页面使用这个搜索组件,强烈建议将其制作成“母版”。只需创建一次,即可在所有页面中复用和统一更新。
  3. 中继器替代静态列表:对于动态变化的结果列表(数量、内容不定),Axure 的“中继器”元件是终极解决方案。你可以将结果数据存放在中继器的数据集里,通过交互来过滤、排序和显示数据,并配合更复杂的逻辑来实现真正动态的关键词高亮(虽然仍需预先定义高亮位置,但可通过中继器项加载时交互来批量控制)。
  4. 添加加载动画:除了文字“搜索中...”,可以在按钮上或结果区域添加一个旋转的加载图标(使用动态面板的多状态循环播放实现),提升体验。

8.2 视觉与体验优化

  1. 悬停与按下状态:为搜索按钮和清空按钮设置“鼠标悬停”和“鼠标按下”的交互样式,使原型更加逼真。
  2. 输入框即时反馈:可以为输入框添加OnTextChange事件,当用户输入时,实时清空之前的高亮和结果,或者提供一个“输入提示”下拉列表。
  3. 键盘交互:为输入框添加OnKeyUp事件,监听“Enter”键,使其同样能触发搜索,符合用户习惯。
  4. 高亮样式多样化:不要局限于黄色背景。可以尝试下划线、文字加粗、改变文字颜色等多种高亮样式,只需修改那个作为高亮背景的动态面板的样式即可。

8.3 工程化与维护

  1. 文档化交互逻辑:在 Axure 的“页面说明”或单独的文档中,简要记录这个搜索组件的工作逻辑,特别是条件判断的规则,方便后续修改或团队协作。
  2. 版本管理:Axure 文件也建议使用 Git 等工具进行版本管理,特别是当原型作为重要交付物时。
  3. 性能考量:如果模拟的结果项非常多(比如超过50条),在 Axure 预览中可能会变慢。这时应考虑使用中继器进行虚拟化展示,或者分页加载。

通过这个从零到一的过程,我们不仅学会了一个高保真搜索原型的制作方法,更重要的是掌握了在 Axure 中通过动态面板、元件显隐和条件逻辑来模拟复杂交互的思维模式。这个模板你可以直接保存到你的 Axure 元件库中,在未来需要演示搜索功能时,快速拖拽使用并修改内容。记住,原型的价值在于高效、无歧义地沟通设计意图,这个高亮搜索模板正是为此而生。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询