童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

Axure教程:12306图片验证码的实现(随机可验证)

10月14日 壹世缘投稿
  网上关于12306图片验证码的吐槽已经是铺天盖地,当然,现在的12306图片验证码已经不像以前那么变态了。不过鹏哥心里一直有个心结,纵使它如何变态,我都想用Axure把它画出来,没办法,鹏哥就好这口,终于经过几个日夜的绞尽脑汁,原型出炉(可生成随机图片和关键字,可选择图片进行验证),于是速速跟小伙伴们分享。
  一、解析12306验证码
  我们先来看一下12306网站上的图片验证码样式
  由此我们可以提取出一些关键信息,以便于我们后面进行原型设计:
  随机关键词:如上图中的“蜡烛”,一个或两个随机关键词
  随机图片:一共有8张随机图片,当然图片中必须包含可以和关键词对应的图片
  验证:选择图片后,会验证所选图片是否与关键词一致,同时是否选择了所有的和关键词对应的图片
  刷新:验证失败后会自动刷新,刷新后会出现新的随机关键词和图片;也可进行手动刷新
  二、原型效果图
  三、原型设计思路
  刚才我们提取到了12306验证码的一些必要元素,那么在原型设计的时候我们就要去实现那些功能。
  1、生成随机图片和关键词
  生成8张随机图片
  根据8张已生成的图片生成关键词,也就是在8张图片中随机挑选12个图片对应的关键词
  2、图片选择和验证
  在第一步生成随机图片和关键词的时候我们已经知道了哪几个图片是和关键词对应的,需要进行标记
  当选择图片的时候,把选择的图片进行标记,这时候可能是正确的标记或者错误的标记
  通过比较上述两步中标记的值来判断验证码的正确与错误
  3、刷新验证码
  通过对中继器进行分页,每刷新一次则显示中继器的下一页,并且重新生成随机图片和关键词,这一步需要中继器中的项目数为8个整数倍
  四、原型制作过程
  1、生成随机图片
  1)添加“中继器”,设置中继器中项目的列为“keyword”、“img”、“sortnum1”、“sortnum2”、“selected”,并对中继器进行如下的设置
  2)中继器中放入“图片”原件,并且为中继器添加“每项加载时”用例,用于显示产生的随机图片
  3)在页面上增加“页面加载时”用例,该用例执行的时候向中继器中插入16条数据,并且对中继器进行排序
  其中“sortnum1”和“sortnum2”给赋予随机数,并且“sortnum1”用于中继器项目的排序,这时候就得到了12306验证码的随机图片,如下图:
  2、生成关键词
  关键词的生成放在随机图片生成的后面来实现,也就是先生成8张随机图片,然后再根据这8张图片随机抽选12个图片对应的关键词即可,那么问题就在于如何从这8张图片中进行随机抽取,这里用到的方法就是通过比较“sortnum1”和“sortnum2”的大小,当sortnum1srotnum2的时候,我就把这个项目对应的图片关键字提出取来,那么8张图片,总共会对比8次,最终的结果可能是提取到0个关键词,1个关键词或2个及2个以上的关键词。那么0个关键词的情况我先不作处理,我处理2个及2个以上关键词的情况,即我最多只提取2个关键词,当第二个关键词提取出来后,后面我就不再提取关键词了。
  添加2个矩形框(keyword1和keyword2)
  在中继器上增加“每项加载时”用例
  Case1:当sortnum1sortnum2并且keyword1为空的时候,将图片对应的keyword赋值给keyword1
  Case2:当sortnum1sortnum2并且keyword1已经提取出来并且keyword2为空并且当前的keyword不等于keyword1,将图片对应的keyword赋值给keyword2
  Case3:不提取keyword
  通过以上3个Case就可以在每次加载的时候产生8个随机图片并且提取出02个关键词,当提取不到关键词的时候就刷新下吧,其实也可以通过增加一个Case来避免提取不到关键词的情况,有兴趣的小伙伴可以自行尝试。
  3、图片选择和取消选择
  1)图片选择和取消选择,当点击图片的时候可以选择图片,再次点击可以取消图片选择。在中继器中的图片上增加“点击时”用例
  Case1:图片的值为空时,点击图片为其赋值“”
  Case2:图片的值为“”时,点击图片为其赋值空
  2)另外,为了之后要进行的验证码校验,我希望选择一个正确的图片时,为一个变量(YZ123062)加1,取消选择时,则为其减1;当选择一个错误的图片时,为一个变量(YZ123063)加1,取消选择时,则为其减1。
  4、验证所选图片是否正确
  上一步我们得到了选择正确的图片的变量(YZ123062)值和选择错误的图片的变量(YZ123063)值,如果YZ123062的值等于验证码初始化时候的正确图片的数量,并且YZ123063的值等于0,那么就可以保证验证成功,否则验证失败。
  获取验证码初始化时候正确图片的数量,通过判断每一张图片的keyword是否包含在“keyword1”或“keyword2”中,如果包含在其中,我们则更新中继器中“selected”的值为1,否则不更新;完成更新后,再将初始化的这8个图片对应的“selected”的值累加起来,则得到了验证码初始化时候正确图片的数量,并将其赋值给变量(YZ123061)
  1)更新正确图片的“selected”值为1,这个动作加在一个按钮上,添加“鼠标按下时”用例。
  2)获取验证码初始时正确图片的数量并赋值给变量(YZ123061),由于在上一步中对中继器中的项目进行了更新,因此会重新出发中继器的“项目加载时”用例,这时候我们只需要在之前写好的用例的Case3上增加赋值动作即可。
  3)校验YZ123061是否等于YZ123062并且YZ123063是否等于0,这个动作我们在“鼠标松开时”执行,即在刚才的按钮上增加“鼠标松开时”用例
  Case1:验证成功
  Case2:验证失败并刷新
  5、刷新二维码
  刷新的实现较为简单,增加一个刷新按钮,并为之添加“鼠标点击时”用例,清空所有的变量值和中继器的selected值,重新设置中继器的sortnum1的值并添加排序,然后执行中继器的“下一页”动作即可
  五、总结
  以上就是12306图片验证码的制作过程,表面看起来是“中继器”的使用,但更多的还是事件逻辑的处理,其中的难点在于随机图片和关键词的生成,以及校验所选图片是否正确的过程。小伙伴们如果对于12306验证码的实现有更好的思路,也欢迎分享与交流。
投诉 评论 转载

Axure7。0实例:利用Axure制作放大镜原型工欲善其事,必先利其器。作者分享了自己做放大镜原型的过程,希望给大家带来一些参考。我是刚应聘产品助理的实习生,本身是学开发的,由于兴趣爱好,选择从事产品行业,工欲善其事,……Axure实例:创建浏览器顶部固定菜单及子菜单文章分享了一个运用Axure创建浏览器顶部固定菜单及子菜单的例子,和各位PM分享,希望能帮到一些需要的朋友。在下是个axure新手,要用axure实现下面一个功能:……Axure原型教程:利用Axure制作剪刀石头布小游戏文章分享了如何利用Axure制作剪刀石头布的小游戏,与大家分享,相信大家一定会有所收获。教你用Axure做个剪刀石头布的小游戏。先睹为快:【点我预览】教程开始……Axure8。0教程:制作一个带有tab选项栏的滚动区大家好,这一次所要分享实现的效果就是:纵向滑动移动端屏幕,内容向上滚动直至tab选项栏到达顶部时,tab选项栏固定在顶部,而tab选项栏下内容继续滚动。由于这里使用了上一篇文章……Axure8。0实例:复选框的应用很多业务系统之中都会有以列表的形式展现数据的情况,那么问题来了,对列表选择时会出现多选、全选、反选的问题,今天就来叨一叨如何使用axure原型工具实现复选框的多选、全选和反选。……Axure教程:12306图片验证码的实现(随机可验证)网上关于12306图片验证码的吐槽已经是铺天盖地,当然,现在的12306图片验证码已经不像以前那么变态了。不过鹏哥心里一直有个心结,纵使它如何变态,我都想用Axure把它画出来……在全球化流程中,如何给原型设计加分?全球化是一种不可抵挡的潮流。信息技术行业随着全球化的发展不断的状大,软件开发现在也越来越显示出全球化的趋势。前有TubikStudio这种设计公司,后有Dribbble、……Axure干货制作移动APP端的左侧滑菜单原型工具有多种,为何我确对Axure情有独钟?看了你就明白他的强大。本文重点是自己制作经验分享,视觉元素是次要(自己搞的界面,欢迎UI同学提上你的宝贵意见)。本次教程分享……Axure教程:可使用的计算器demo制作(下)上篇文章《Axure教程:可使用的计算器demo制作(上)》,讲完了数字键0、19以及其他几个键的事件设置,这篇文章补充讲完键、键的事件写法,完成整个计算器demo的制作,建议……如何在AxureRP8中规范使用FontAwesome图标库今天简单分享一下在AxureRP8中如何使用FontAwesome图标库完成设计。在做交互设计的时候,作为产品设计师我们常常需要用一些标准的图标库,通过导入现成的图标可以……Axure教程:用中继器和日期函数实现万年历对于万年历的概念,大家已经非常熟悉了,尤其临近节假日的时候,我们会习惯去查看日历上的放假安排,但是经常觉得很坑爹啊有木有,不过这是题外话了。今天这个案例就和万年历有关,教大家使……Axure教程:多账户的登录验证登录注册是一个系统的门户,做好登录注册是第一步。对于尚未接触学习中继器组件的小伙伴,可通过使用全局变量实现多账户的登录验证与注册。话不多说,下手来干~关系组件……
一个合格copy究竟如何copy?50个句子适合4月发的朋友圈文案,收藏!文案要怎么写,才能有效传递信息?岡本艺术大片:会玩艺术,更会玩营销!地表最强清明节文案,快看!快手的8句民谣文案,烟火有声清明节文案,清风绿草地16首小诗,给16个品牌愚人节文案要怎么写,才好玩?写方案时该如何高效表达创意,才能不被Pass掉?如何让人对你的文案,念念不忘?放弃抄文案吧,试试抄高手思维新手卖家如何开直通车?华为牛人的十年工作感悟高速铁路噪声的危害苏中七战七捷粟裕指挥的以一敌四的惊人胜利春晚吉祥物猴子康康被吐槽恶搞韩美林大师也难免跑偏iPhone12曝光,2K屏A14仿生双模5G超感应镜头,这抗衰老工作如何展开?记住以下几点,让你十年后比同龄人年轻查个人宾馆住宿记录(怎样才能查出开宾馆记录)赏美景住民宿尝美食,肥西假期两日游指南来啦!甜蜜蜜全脂奶粉和脱脂奶粉有什么区别利用大数据反欺诈是未来一大趋势

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界