Axure教程:可使用的計算器demo制作(下)

14 評論 18789 瀏覽 39 收藏 8 分鐘

上篇文章《Axure教程:可使用的計算器demo制作(上)》,講完了數字鍵0、1…9以及其他幾個鍵的事件設置,這篇文章補充講完+/-鍵、%鍵的事件寫法,完成整個計算器demo的制作,建議先看完上一篇。下面繼續完成事件設置~

1、%鍵的事件設置

點選%鍵,鼠標單擊時,設置屏幕文字為[[LVAR1%100]],其中LVAR1為局部變量,表示原屏幕文字。

解析:計算器里%鍵表示的是求屏幕數字的百分比,所以點擊時,設置原屏幕文字除以100即可;值得說明的事,在Axure運算函數中,%運算代表的是求余數(上篇文章講到的,+號代表加法運算,-代表減法運算,*號代表乘法運算,/號代表除法運算),如設置單擊某按鈕,設置按鈕文字為[[7%2]],觸發事件時,則按鈕文字會變為1。

2、+/-鍵的事件設置

點選+/-鍵,鼠標單擊時,編輯條件,設置條件當屏幕文字不包含-時,設置屏幕文字為-[[LVAR1]],其中LVAR1表示原屏幕文字。

接著,繼續添加+/-鍵的單擊用例case 2,設置屏幕文字為[[LVAR1.slice(1,LVAR1.length)]],其中LVAR1表示原屏幕文字。

解析:關于+/-鍵寫法的思路,+/-鍵其實就是設置屏幕文字為原屏幕文字的相反數。當屏幕為正數時(即屏幕文字不包含-號情況),在原屏幕文字前加上-號,否則(即當屏幕文字包含-號情況),去除原屏幕文字前方的-號,保留-號后面的文字即可(此時需要運用到兩個字符串函數,解析見下方)。

slice(start,end)函數:此為截取字符串函數,表示截取某字符串從第n位,到第m位的字符,返回的結果為一串新的字符串。完整寫法為[[LVAR.slice(start,end)]],LVAR表示原字符串文字,satrt表示開始截取的位數n,end表示結束截取的位數m,返回結果新字符串包括原字符串第n位的字符,但不包括第m位的字符,且字符串從0開始計位,例如:字符串ab165,第0位為a,第1位為b,第2位為1…以此類推,若此時要從該字符串里截取出新的字符串b16,則寫法應為[[LVAR1.slice(1,4)]],其中LVAR1為局部變量代表原字符串ab165文字。

length函數:此為字符串長度函數,求取某字符串的長度,返回的結果為一個數字。完整寫法為[[LVAR.length]],其中LVAR代表所求的字符串文字,如上述字符串ab165,求其長度具體寫法為[[LVAR1.length]],LVAR1為局部變量代表字符串ab165文字,返回結果為5。

3、舊鍵事件修改完善

數字鍵1、2…9事件修改完善

以數字鍵7為例,點選數字鍵7,添加單擊時用例case 3,編輯條件,當屏幕文字等于“-0”時,設置屏幕文字為-[[This.text]],并將case 3上移到事件最上方(右擊case 3事件,選擇事件上移動,或直接點擊case 3整個事件,按住鼠標拖動到事件最上方),數字鍵7完整事件見上圖右側紅框。

刪除1、2、3、4、5、6、8、9數字鍵的事件,將數字鍵7的單擊事件復制到這些數字鍵,完成1到9數字鍵的最終事件。

解析:因為+/-鍵事件的寫入,存在了當屏幕文字為-0的特殊情況(計算器默認屏幕文字為0,默認判斷條件為替換,此時點擊+/-鍵,則屏幕會出現該情況),在該情況下,點擊數字鍵1、2…9等,應將0替換為所點擊的數字,若此時依舊用原事件,則屏幕顯示為-0時,點擊7,則屏幕文字會顯示為7,與現實計算器效果不符合。

事件的執行是由上往下執行的,以上述數字鍵7為例,會先執行屏幕文字為“-0”情況,如果屏幕文字不為“-0”,則繼續執行判斷文字為“替換”情況,如果判斷文字不為“替換”,再繼續執行判斷文字為“連接”情況的事件。

數字鍵0事件修改完善

點選數字鍵0,添加單擊事件新用例case 3,編輯條件當屏幕文字為“-0”時,設置屏幕文字為“-0”,并將case 3移動至事件最上方,原理與數字鍵7相同。

小數點鍵事件修改

點選小數點鍵,添加單擊事件新用例case 2,編輯條件當判斷文字等于“替換”時,設置屏幕文字為“0.”,設置判斷文字為“連接”,禁用小數點,并將case 2事件上移,完整小數點事件見上圖右側紅框。

解析:原來的寫法存在bug,即當完成一次算術運算后,如3+4,點擊等號鍵后,屏幕文字為“7”,判斷文字為“替換”,若沿用之前寫法,此時點擊小數點鍵,則屏幕文字將顯示為“7.”,與現實計算器效果不符。添加判斷條件,則可避免該bug出現。

完成上述所有操作,則一個完整有效的計算器demo就全部完成。

通過這個實例告訴我們,在原型的設計過程中,原型組件的事件不可能一蹴而就,組件與組件之間,事件可能存在相互影響的關系,只有通過一次次邏輯思考,進行修改完善,才能達到你期望的效果。

所以,原型設計的核心思想是:產品做什么,邏輯與判斷條件是什么,它側重表達業務需求;與之相關的還有一個概念“交互設計”,其核心思想是:產品怎么做,它側重點在于用戶體驗設計。

 

作者:五月,微信公眾號:wuyuepd。

本文由 @五月 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. “+/-”鍵只是取相反數,那么鼠標單擊時,設置屏幕文字為[[0-LVAR1]],其中LVAR1表示原屏幕文字。 這樣是不是就可以了,不需要那么多修改了

    來自浙江 回復
  2. 學習了你的制作方法,然后在你的基礎上做了些修改,可以連續計算,另外添加了退格操作,共勉 ?? https://92jla5.axshare.com

    來自陜西 回復
    1. ??????優秀

      回復
    2. 請問 退格這個功能怎么實現呢 求教

      來自浙江 回復
    3. 使用substr(start,length)函數,從當前文本對象中指定起始位置開始截取一定長度的字符串,start為被截取部分的起始位置;length為被截取部分的長度,這里的length設置為原字符串(就是屏幕上的字符串長度)減去1就可以了

      來自浙江 回復
    4. ?? 有沒有 圖片教教我 我還是個新手 做計算器這個原型 還不太懂

      來自浙江 回復
    5. 退格退到沒有數字,是怎么變成0的呢,我目前可以刪掉所有,但是刪到最后,不會變成0,求大神指教

      來自福建 回復
    6. 額 突然收到的評論 竟然有郵件通知了。。。。刪除到最后變成0,一個條件判斷可以做,如果屏幕上剩余字段長度為1時,再刪除就變0就好

      來自浙江 回復
    7. 我做了判斷,但是刪除之后,會有空格往前推

      來自福建 回復
    8. 你好,可以分享下原型嗎?謝謝~

      來自福建 回復
    9. 有問題可以私我

      來自浙江 回復
    10. 嘿嘿,怎么私你呢 ??

      來自福建 回復
  3. 為什么我做的計算器小數點輸入不了

    來自廣東 回復
  4. 原型預覽地址:http://ejsx7x.axshare.com

    回復