此 NumericStepper 組件可以讓使用者依序逐步增減數字。這個組件是由小型上下箭頭旁文字方塊內的數字所構成。當使用者按下按鈕時,數字會依據
stepSize
參數所指定的單位遞增或遞減,直到使用者放開按鈕或達到最大值或最小值為止。您還可以編輯 NumericStepper 組件文字方塊內的文字。
每個 NumericStepper 實體的即時預覽會反映「屬性」檢測器或「組件檢測器」中的 value 參數設定。但是,即時預覽下無法用滑鼠或鍵盤與 NumericStepper 的方向鍵互動。
與 NumericStepper 組件的使用者互動
在您希望使用者選取數值的任何地方,NumericStepper 組件都能派上用場。例如,您可以在表單中使用 NumericStepper 組件,設定信用卡到期的年、月、日。您也可以使用 NumericStepper 組件讓使用者加大或縮小字體。
NumericStepper 組件只能處理數值資料。而且,如果要顯示超過兩位數字 (例如數字 5246 或 1.34),編寫時必須調整步進器的大小。
您可以在應用程式中啟用或停用 NumericStepper。處於停用狀態的 NumericStepper 不接受滑鼠或鍵盤輸入。當 NumericStepper 啟用時,如果您按一下或用 Tab 鍵移到該組件,它就會成為焦點,且其內部焦點設定為文字方塊。在 NumericStepper 實體成為焦點後,您可以使用下列按鍵加以控制:
按鍵
|
說明
|
向下鍵
|
值變更一個單位。
|
向左鍵
|
將插入點移到文字方塊內的左邊。
|
向右鍵
|
將插入點移到文字方塊內的右邊。
|
Shift+Tab
|
將焦點移到上一個物件。
|
Tab 鍵
|
將焦點移到下一個物件。
|
向上鍵
|
值變更一個單位。
|
如需有關控制焦點的詳細資訊,請參閱 Flash Professional 的
ActionScript 3.0 參考
中的「FocusManager 類別」,以及
使用 FocusManager
。
NumericStepper 組件參數
您可以在「屬性」檢測器或「組件檢測器」中,為每個 NumericStepper 實體設定下列參數:
maximum
、
minimum
、
stepSize
和
value
。這些參數都具有相對應的 ActionScript 同名屬性。如需有關這些參數可能值的詳細資訊,請參閱 Flash Professional 的
ActionScript 3.0 參考
中的 NumericStepper 類別。
建立具有 NumericStepper 的應用程式
下列程序說明如何在編寫時將 NumericStepper 組件加入應用程式。此範例會在「舞台」上放置 NumericStepper 組件和 Label 組件,並且為 NumericStepper 實體建立
Event
.
CHANGE
事件的偵聽程式。當數值步進器的值變更時,範例即透過 Label 實體的
text
屬性顯示新的值。
-
將 NumericStepper 組件從「組件」面板拖曳到「舞台」。
-
在「屬性」檢測器中,輸入實體名稱
aNs
。
-
將 Label 組件從「組件」面板拖曳到「舞台」。
-
在「屬性」檢測器中,輸入實體名稱
aLabel
。
-
開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:
import flash.events.Event;
aLabel.text = "value = " + aNs.value;
aNs.addEventListener(Event.CHANGE, changeHandler);
function changeHandler(event:Event) :void {
aLabel.text = "value = " + event.target.value;
};
此範例會將標籤的
text
屬性設定為 NumericStepper 的值。每當 NumericStepper 實體的值有所變更,
changeHandler()
函數都將更新該標籤的
text
屬性。
-
選取「控制 > 測試影片」。
使用 ActionScript 建立 NumericStepper:
此範例使用 ActionScript 程式碼建立三個 NumericStepper,以供使用者分別輸入生日的月份、日期及年份。另外還會加入三個 Label,做為每個 NumericStepper 的提示文字和識別項。
-
建立新的 Flash (ActionScript 3.0) 文件。
-
將 Label 拖曳到「元件庫」面板。
-
將 NumericStepper 組件拖曳到「元件庫」面板。
-
開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:
import fl.controls.Label;
import fl.controls.NumericStepper;
var dobPrompt:Label = new Label();
var moPrompt:Label = new Label();
var dayPrompt:Label = new Label();
var yrPrompt:Label = new Label();
var moNs:NumericStepper = new NumericStepper();
var dayNs:NumericStepper = new NumericStepper();
var yrNs:NumericStepper = new NumericStepper();
addChild(dobPrompt);
addChild(moPrompt);
addChild(dayPrompt);
addChild(yrPrompt);
addChild(moNs);
addChild(dayNs);
addChild(yrNs);
dobPrompt.setSize(65, 22);
dobPrompt.text = "Date of birth:";
dobPrompt.move(80, 150);
moNs.move(150, 150);
moNs.setSize(40, 22);
moNs.minimum = 1;
moNs.maximum = 12;
moNs.stepSize = 1;
moNs.value = 1;
moPrompt.setSize(25, 22);
moPrompt.text = "Mo.";
moPrompt.move(195, 150);
dayNs.move(225, 150);
dayNs.setSize(40, 22);
dayNs.minimum = 1;
dayNs.maximum = 31;
dayNs.stepSize = 1;
dayNs.value = 1;
dayPrompt.setSize(25, 22);
dayPrompt.text = "Day";
dayPrompt.move(270, 150);
yrNs.move(300, 150);
yrNs.setSize(55, 22);
yrNs.minimum = 1900;
yrNs.maximum = 2006;
yrNs.stepSize = 1;
yrNs.value = 1980;
yrPrompt.setSize(30, 22);
yrPrompt.text = "Year";
yrPrompt.move(360, 150);
-
選取「控制 > 測試影片」,執行應用程式。
|
|
|