Axure之旅|高保真生成随机验证码原型制作

上次分享一个本专题的一个开篇,讲诉了Axure原型的三个层次,即表现层、逻辑层、展示层。并给出了一个简单的例子:音量调节。

这次将分享一个更为常见的组件:验证码。如下图

验证码

先说明一下,在实际工作没有必要像这篇文章写的这样去做一个如此高保真的验证码,是在浪费精力。做这些例子呢,主要是锻炼自己的逻辑能力,以及对Axure的熟悉程度。当然了,做完了可以存进自己的组件库里,需要用的时候直接拖动就能用。多么酷炫。

话不多述,直接进入正题。

分析如下:

表现层:

  • 4个自由角度随机字符
  • 输入框
  • 验证按钮

逻辑层

if 我点击验证码图片then 图片上字符发生随机变化,具体变化规则是:生成4个人随机字符,并旋转随机角度,背景也随机变化
if 我输入在输入框的字符与验证码上面的图片一致,则验证通过

关键就在于生成四个随机字符,随机旋转角度,随机背景。

数据层

我们可以很简单的假设字符就来自于26个大小写字母与10个数字的集合,即
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

分析到这里,我们的思路是:

  1. 构建一个随机字符集合,然后利用随机函数从集合中随机取出四个数,组成验证码。
  2. 运用Axure旋转事件配合随机数,达到字符旋转随机角度的效果。
  3. 至于背景图,专业术语叫噪点图,在百度上找一张图,然后利用Dynamic Pannel限制显示区域的效果,通过随机移动来达到改变背景的效果。
噪点图

进入实操

一、画框架

拖动一个输入框、一个动态面板、一个按钮,调整至合适的大小。

双击进入动态面板,将噪点图放到里面去

这样就实现了噪点图的局部显示:

然后我们在动态面板的onclick中添加move事件:

函数是

[[Math.random().toFixed(2)*-100]]

原理解释:
Math.random()生成0-1随机数,toFixed(2)保留2位小数,乘以-100是因为Axure的坐标轴的原点是在左上角,则图片要移动则是变成负数。这边即随机将噪点图片移动1-100个点。

验证码生成

这里直接将逻辑层与数据层一起写了。
可以用设置变量的形式,但是这个又涉及到其他知识,故我们这里直接采用一种取巧的方式,把字符集合存储在标签中。

拖动四个标签在验证码背景(放到动态面板里面)上,表示4个随机字符。再拖动一个标签放在下面,作为字符串的存储集合。如图

候选字符里面总共有26+26+10=62个字符

我们从这62个字符中随机选取需要用到以下公式。

[[LVAR1.charAt((Math.random()*62).toFixed(0))]]

LVAR1指向字符集合。charAt()函数返回字符串中指定位置的字符。Math.random()返回0-1随机数,乘以62则变成生成1-62的随机数,toFixed(0)函数将结果保留0位小数,即取整。

4个随机字符都是同样的函数。在动态面板的onclick中添加。

到这一步,已经可以做到点击验证码随机生成4个字符了。为了逼真一点,我们再加上随机旋转函数。

很简单,设置旋转角度为1-60的随机数即可。公式为

[[Math.random()*60]]

好了,最后把字符集合标签设为隐藏,最后的效果就出来了。

预览.gif

后续可以在页面onload事件中把动态面板的onclick事件粘贴进去,这样加载时候就是随机字符了。

如果要做验证的话,只要写一个函数,拼接4个随机字符,判断与文本框输入是否相等即可。这边不在讨论范围。本文仅演示验证码高保真验证码生成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容