组件语言参考 |
|
|
|
| 数据绑定类(仅限 Flash Professional) > CustomFormatter 类(仅限 Flash Professional) > 自定义格式程序范例 | |||
以下示例演示如何创建自定义格式程序类,然后使用 ActionScript 将其应用到两个组件之间的绑定。在此示例中,NumericStepper 组件的当前值(其 value 属性)被绑定到 TextInput 组件的当前值(其 text 属性)。在将 NumericStepper 组件的当前数字值(如 1、2 或 3)分配给 TextInput 组件之前,自定义格式程序类会将该值格式化为其对等的英文单词(如"one"、"two"或"three")。
要创建和使用自定义格式程序:
// NumberFormatter.as
class NumberFormatter extends mx.data.binding.CustomFormatter {
// 格式化数字,返回字符串
function format(rawValue) {
var returnValue;
var strArray = new Array('one', 'two', 'three');
var numArray = new Array(1, 2, 3);
returnValue = 0;
for (var i = 0; i<strArray.length; i++) {
if (rawValue == numArray[i]) {
returnValue = strArray[i];
break;
}
}
return returnValue;
} // 转换格式化后的值,返回原始值
function unformat(formattedValue) {
var returnValue;
var strArray = new Array('one', 'two', 'three');
var numArray = new Array(1, 2, 3);
returnValue = "invalid";
for (var i = 0; i<strArray.length; i++) {
if (formattedValue == strArray[i]) {
returnValue = numArray[i];
break;
}
}
return returnValue;
}
}
import mx.data.binding.*;
var x:NumberFormatter;
var customBinding = new Binding({component:stepper, property:"value", event:"change"}, {component:textInput, property:"text", event:"enter,change"}, {cls:mx.data.formatters.Custom, settings:{classname:"NumberFormatter"}});
第二行代码 (var x:NumberFormatter) 确保编译后的 SWF 文件中包含自定义格式程序类的字节代码。
这将使文档可以使用数据绑定运行时类。有关更多信息,请参见使数据绑定类在运行时可用(仅限 Flash Professional)。
单击 NumericStepper 组件上的按钮,并观看 TextInput 组件的内容发生更新。
下表列出了 CustomFormatter 类的方法。
|
方法 |
说明 |
|---|---|
|
从原始数据类型转换为新的对象。 |
|
|
从字符串(或其它数据类型)转换为原始数据类型。 |
|
|
|
|