按鍵是很普遍的人機介面,也常用於內嵌系統(Embedded Systems)。既然大家那麼愛用按鍵,很自然地, Embedded Systems 軔體開發人員就常常得處理按鍵的偵測、編碼等議題。此外,為了按鍵操作流暢,我們還必須為按鍵設計適當的指法(fingering)及明確、統一的功能定義(function definition)。
不久前筆者設計了一款相框產品,它雖然只有三個按鍵,但除了要能執行基本操作,如上一張、下一張、設定自動換張的間隔時間等;也要能夠流暢地切換功能,如手動換張、自動換張、顯示日期時鐘、功能設定等;此外,最好還能透過這些操作,讓使用者充分感受到它優越的秀圖速度。
老實說,把這些操作通通塞進三個按鍵內並不是多困難的事,比較需要我們傷腦筋的是怎麼讓使用者覺得操作是簡單流暢、符合預期的。
這裡不是要跟你扯怎麼設計美美的畫面,雖然美美的畫面很重要,但畫面設計還是交給專業的美術人員,我們只要想辦法讓「程式的行為與使用者的期望完全一致」就好了。
為了達成這個目標,我在上面規劃了單擊、長壓、自動重複、組合鍵等操作指法(fingering):
- Single Click -- 單擊
- to go to Previous/Next slide
- to Decrease/Increase values
- mode switch (AUTO/MANUAL/CLOCK)
- confirm (mode key)
- Long Press -- 長壓
- Power On / Power Off
- Auto-repeat after a long press -- 自動重複
- to go to Previous/Next slide
- to Decrease/Increase values
- Composite Keys (Shift + Prev/Next) -- 組合鍵
- menu and menu item switching
在決定了這些指法及其使用場合後,緊接著是要定義各個按鍵在不同指法及情境下所對應的功能(function definition),一個可能的定義如下:
- Prev:
- Previous Slide
- Value Decreasing
- Next:
- Next Slide
- Value Increasing
- Mode/Power/Confirm/Shift:
- Mode Switch: AUTO / MANUAL / CLOCK -- 單擊
- Power On <-> Power Off -- 長壓
- Confirm (for Menu) -- 單擊
- Shift + Prev (Shift + Next): Menu Prev (Menu Next)
- for MANUAL mode of Slide Show:
- Delete?
- press mode key to confirm
- auto-cancel (and return) after 3 sec
- for AUTO mode of Slide Show
- Interval (1~60 sec)
- click Prev/Next key to Decrease/Increase the value
- auto-confirm (and return) after 3 sec
- press mode key to confirm
- for CLOCK mode:
- Switch between digital clock and analog clock
最後,關於按鍵的處理,我之前還整理了一篇 Keypad Algorithm 大家可以順便去逛逛 :)
0 comments:
Post a Comment