【Axure 教程】隨機(jī)亂序數(shù)字鍵盤(pán),讓數(shù)字飛一會(huì)兒

1 評(píng)論 4625 瀏覽 5 收藏 7 分鐘

目前的移動(dòng)支付中有一種比較流行的設(shè)計(jì)——隨機(jī)亂序數(shù)字鍵盤(pán),它可以最大程度避免別人通過(guò)你在輸入密碼時(shí)的按鍵位置而推測(cè)出你的密碼。本文作者分享了用Axure制作隨機(jī)亂序數(shù)字鍵盤(pán)的教程,一起來(lái)學(xué)習(xí)一下吧。

隨著移動(dòng)支付遍地開(kāi)花,產(chǎn)品經(jīng)理們?cè)谥Ц兜母鱾€(gè)環(huán)節(jié)可謂是下足了功夫,今天分享的是目前移動(dòng)支付中比較流行的一種設(shè)計(jì)——隨機(jī)亂序數(shù)字鍵盤(pán)。這種鍵盤(pán)一般用于輸入驗(yàn)證碼或密碼,因?yàn)殒I盤(pán)每次出現(xiàn)數(shù)字都是隨機(jī)且無(wú)序,所以可以最大程度避免別人通過(guò)你在輸入密碼時(shí)按鍵的位置而推測(cè)出你的密碼。

我曾經(jīng)做過(guò)這個(gè)鍵盤(pán)的設(shè)計(jì),這是當(dāng)時(shí)的效果圖:

你可以看得出來(lái)我是多么地不務(wù)正業(yè),竟然想到給一個(gè)鍵盤(pán)加 loading 效果,但是沒(méi)有辦法,你現(xiàn)在所看到的這個(gè)效果圖的加載時(shí)間已經(jīng)算很短了,有時(shí)候加載的時(shí)間相當(dāng)長(zhǎng),而且還不能保證每次生成的9個(gè)數(shù)字一定不會(huì)重復(fù)。

就在最近兩三天,我在與病毒抗?fàn)幍哪硞€(gè)晚上,突然因?yàn)橄氲搅肆硗庖环N實(shí)現(xiàn)方式而高興得做起來(lái),新的實(shí)現(xiàn)方法不僅做起來(lái)更簡(jiǎn)單,生成速度也更快,而且目前測(cè)試還未出現(xiàn)重復(fù)的情況,正所謂,垂死病中驚坐起,不務(wù)正業(yè)的產(chǎn)品經(jīng)理,竟是我自己。好了,先來(lái)看看整改后的效果吧(傳送門(mén)>>):

接下來(lái)分享教程。

一、繪制鍵盤(pán)

首先拖進(jìn)來(lái)一個(gè)表格,按照上圖改成3*4的鍵盤(pán)形式,再拖進(jìn)來(lái)9個(gè)動(dòng)態(tài)面板,然后每個(gè)單元格和動(dòng)態(tài)面板分別進(jìn)行命名,方便待會(huì)找到對(duì)應(yīng)元件:

然后添加10個(gè)變量,用量存儲(chǔ)生成的10個(gè)數(shù)字:

二、生成第1個(gè)數(shù)字

生成鍵盤(pán)的邏輯是:

  • 每個(gè)單元格隨機(jī)生成0-9的數(shù)字
  • 每個(gè)數(shù)字只能出現(xiàn)一次,如果當(dāng)前生成的數(shù)字已經(jīng)存在,則需要重新生成
  • 生成當(dāng)前單元格數(shù)字后,生成下一個(gè)單元格的數(shù)字

這里之所以把第1個(gè)數(shù)字單獨(dú)講,是因?yàn)樗堑谝粋€(gè)生成的數(shù)字,所以它無(wú)論是哪個(gè)數(shù)字,都是可以了,第一個(gè)單元格的事件如下:

注意 random() 生成的數(shù)字不包含尾數(shù),比如生成0-1,是不包含1的,所以生成0-9,應(yīng)該是乘以10。

三、生成其他數(shù)字

其他數(shù)字的生成則是通過(guò)動(dòng)態(tài)面板的循環(huán)來(lái)控制,動(dòng)態(tài)面板不是同時(shí)啟動(dòng)的,而是按順序輪流啟動(dòng)。首先是數(shù)字2的生成,當(dāng)動(dòng)態(tài)面板2載入時(shí),自身開(kāi)始循環(huán),循環(huán)時(shí),分3種場(chǎng)景:

  1. 數(shù)字2為空,隨機(jī)生成數(shù)字2
  2. 數(shù)字2不為空且不等于數(shù)字1,把數(shù)字2顯示出來(lái),動(dòng)態(tài)面板2停止循環(huán),開(kāi)始動(dòng)態(tài)面板3循環(huán)
  3. 其他情況表示數(shù)字重復(fù)了,把數(shù)字2清空,讓循環(huán)進(jìn)入第一個(gè)場(chǎng)景,重新生成數(shù)字2

其他就簡(jiǎn)單了,由于我們已經(jīng)在數(shù)字2生成成功的時(shí)候啟動(dòng)了動(dòng)態(tài)面板3,所以動(dòng)態(tài)面板3直接按3種場(chǎng)景判斷即可,所以后面的所有動(dòng)態(tài)面板都可以直接復(fù)制前面動(dòng)態(tài)面的【狀態(tài)改變時(shí)】的事件進(jìn)行修改即可,將其中的變量和顯示文字的單元格更換一下就行。

但有一點(diǎn)需要注意的是,每個(gè)動(dòng)態(tài)面的第2種場(chǎng)景,在判斷是否重復(fù)的時(shí)候,總是比前面多一個(gè)條件,比如:數(shù)字2只需判斷是否與數(shù)字1重復(fù),數(shù)字3則需要判斷是否與數(shù)字1和數(shù)字2重復(fù),以此類(lèi)推,到了數(shù)字0,需要判斷是否與前面的9個(gè)數(shù)字重復(fù):

按以上的配置一直來(lái)到數(shù)字0,這里只需要做一點(diǎn)點(diǎn)小調(diào)整,由于數(shù)字0是最后一個(gè)數(shù)字,已經(jīng)不需要再繼續(xù)生成,也就是不用再啟動(dòng)任何動(dòng)態(tài)面板,所以這里生成后,比其他的數(shù)字少了一個(gè)啟動(dòng)下一個(gè)動(dòng)態(tài)面板的動(dòng)作:

希望以上教程對(duì)你有幫助,如果喜歡我的教程,請(qǐng)幫忙點(diǎn)個(gè)“收藏”和“喜歡”,感謝閱讀!

本文由 @產(chǎn)品錦李 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 用中繼器吧

    來(lái)自上海 回復(fù)