axure版本:8.0
实现效果:
原型查看:
https://2ooaoe.axshare.com/#c=2
实现思路:
使用中继器来存储双方已经发生的聊天内容,并用不同的展现形式显示双方的聊天内容。点击发送聊天内容时,将聊天内容加入到中继器中,并在聊天对话中显示。
制作步骤:
1、拖入一个代表屏幕的元件(大家可根据需要加入一个手机或者平板的元件)。
2、拖入一个中继器。
3、设置中继器的基本样式,布局选为垂直且不进行网格排列,并设置行间距和列间距。
4、选中中继器,在属性页卡里,在中继器中预设好已完成的聊天内容。中继器中的聊天内容至少包括两个字段,一个是消息发送方,一个是消息内容。(我在后续设置代码中以我的列名进行,若各位设置的不一样自行参照修改即可)
5、聊天内容设置好后,就设置聊天样式。双击中继器,进入中继器单元格设置。首先制作显示对方聊天对话的样式,并将其编入一个组合中重命名。在制作过程中,为了更好的适应第1步添加的屏幕元件,可以添加一条辅助线来进行标识。
然后在样式中将该组合设为隐藏。
6、还是在中继器单元格设置界面,制作己方聊天对话的样式,也同样编入一个组合并重命名,然后也将该组合设为隐藏。
7、现在正式开始进行中继器的设置了。选中之前拖入的那个中继器,在属性中,找到“每项加载时”事件
8、在Case1后面没有设置任何信息,表示只要每项加载时,都会执行。我们双击Case1,在弹出的对话框中设置Case1生效的条件,在弹出的对话框中,点击“添加条件”
参照下图进行设置后,点击确定。
我们能看到Case1下面添加了判断条件。该条件的意思为:如果中继器中该条记录的object那一列的值为you的时候,执行后面的操作。
我们将它默认的操作删除。然后在动作中添加“显示”和“设置文本”。显示you这个组合。
设置文本选择you组合下面的用于显示文本内容的元件,文本值选择fx,并在里面“插入变量或函数”中选择item.content,然后点击确定。
设置好后如下图
9、在属性中,双击“每项加载时”,添加一个条件 if "[[Item.object]]" == "me"
设置 显示my组合,并设置my组合下面的用于显示文本内容的元件的文本值为[[Item.content]]。
确定后,可以预览到如下效果:
10、消息内容显示出来了,接下来我们做聊天发送。在底部添加聊天内容输入文本框,发送按钮等,如下图。
11、点击发送按钮,在属性中,设置”鼠标单击时“事件,动作选择”中继器“下面”数据集“里面的 添加行
点击上图中右侧的”添加行“,在弹出的对话框中,object列的值设为”me“,content中的值点击fx函数。
我们这里需要将用户输入的内容添加进来,但是在”插入变量或函数“中,无法直接选择用户输入框的值。
为了实现这一需求,我们需要增加一个局部变量来中转。如上图,变量名随便取,值的类型选择”元件文字“,然后选择用户输入文本内容的文本框。
设置好后就可在”插入变量或函数“中,选择刚才我们定义的那个局部变量了。
12、在发送按钮下面再添加一个动作,设置消息录入文本框的内容为空。
至此,相关原型已制作完毕。可以预览并发消息看看制作的效果了。