首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex 三 格式化组件

2012-09-02 
flex 3 格式化组件1.货币格式化2.日期格式化3.数字格式化用NumberFormat 类,设置掩码,然后调用format( )

flex 3 格式化组件
1.货币格式化



2.日期格式化


3.数字格式化

用NumberFormat 类,设置掩码,然后调用format( ) 方法。
虽然自己都可以做到这种效果,但是你会发现用NumberFormat 对象更简单更灵活。
NumberFormat 类是个自定义类,可到http://www.rightactionscript.com/ascb下载。使用它须先导
入:import ascb.util.NumberFormat:
接下来决定是什么掩码进行格式化,它可以是0,#,.,,,或者其他。
零(0)
使用零作为占位符
井号(#)
点号(.)
逗号(,)
下面看一下例子:掩码如下:
##,###.0000
格式化如下数字:1.2345, 12.345, 123.45, 1234.5, 和12345, 结果:
1.2345
12.3450
123.4500
1,234.5000
12,345.0000
通过构造函数直接传入参数作为掩码:
var styler:NumberFormat = new NumberFormat("##,###.0000");
另外,使用属性进行修改掩码:
styler.mask = "##.00";
设置好掩码,调用format( ) 方法就可以格式化数字了:
例如:trace(styler.format(12345);

var styler:NumberFormat = new NumberFormat("#,###,###,###");
trace(styler.format(1));
trace(styler.format(12));
trace(styler.format(123));
trace(styler.format(1234));
styler.mask = "#,###,###,###.0000";
trace(styler.format(12345));
trace(styler.format(123456));
trace(styler.format(1234567));
trace(styler.format(12345678));
trace(styler.format(123456789));
输出如下:
1
12
123
1,234
12,345.0000
123,456.0000
1,234,567.0000
12,345,678.0000
123,456,789.0000
NumberFormat 对象自动本地化返回值。如果Flash 播放器在英文操作系统上运行,
NumberFormat 类是用逗号和点号,如果在法语操作系统上运行,正好相反,使用点号和逗号,
因此需要覆盖自动本地化:
有几种方法覆盖自动本地化设置:
把Locale 对象作为format( ) 方法的第二个参数,format( ) 方法根据Locale 对象的设置进行格
式化。Locale 对象使用两个参数,第一个是语言代码,如en,第二个参数为国家代码,如
EN.
通过全局设置Locale.slanguage 或Locale.svariant 属性就不需要给format( ) 方法传递参数了
使用符号对象作为format( )的第二个参数,包括两个属性:group和decimal。该方法适合没有
用Locale对象进行全局设置下使用。
Locale 类在ascb.util 包中,使用前导入。
下面的代码展示了三种方法:
var styler:NumberFormat = new NumberFormat("#,###,###,###.00");
Locale.slanguage = "fr";
trace(styler.format(1234));
trace(styler.format(12345, {group: ",", decimal: "."}));
trace(styler.format(123456));
Locale.slanguage = "en";
trace(styler.format(1234567));
trace(styler.format(12345678, new Locale("es", "ES")));
trace(styler.format(123456789, {group: "|", decimal: ","}));
结果:
1.234,00
12,345.00
123.456,00
1,234,567.00
12.345.678,00
123|456|789,00
var styler:NumberFormat = new NumberFormat( );
trace(styler.format(12.3));
trace(styler.format(123.4));
trace(styler.format(1234.5));
trace(styler.format(12345.6));
正像上一节所说的,仍然有本地化问题,本地化处理和上一节一样:
var styler:NumberFormat = new NumberFormat( );
Locale.slanguage = "fr";
trace(styler.format(1234, new Locale("en")));
trace(styler.format(12345, {group: ":", decimal: "|"}));
trace(styler.format(123456));

2.格式化货币数字
不像其他语言,比如ColdFusion,ActionScript 没有提供内建的函数格式化货币数字。自定义类
NumberFormat 包括一个currencyFormat( )方法。
currencyFormat( ) 至少需要一个参数,看下面的简单代码:
var styler:NumberFormat = new NumberFormat( );
trace(styler.currencyFormat(123456));
在英文操作系统上运行结果如下:
$123,456.00
和format( ) 方法类似,currencyFormat( ) 方法根据自动本地化设置进行格式化。因此,如果上
面的代码在西班牙语操作系统上运行结果如下:
123.456,00
覆盖自动本地化方法和format()类似:
使用Locale 对象作为currencyFormat( )的第二个参数.
赋全局变量给Locale.slanguage 和Locale.svariant 属性
使用字符对象作为currencyFormat( )的第二个参数.
currencyFormat( ) 的字符对象比format( ) 方法中稍微不一样,它包括4个属性: group, decimal,
currency, 和before。group 和decimal 属性和format( ) 方法一样。currency 属性为货币符号,
before 为布尔值,表示货币符号的位置。
下面是currencyFormat( )的一些例子代码:
var styler:NumberFormat = new NumberFormat( );
trace(styler.currencyFormat(123456));
Locale.slanguage = "nl";
trace(styler.currencyFormat(123456));
trace(styler.currencyFormat(123456, new Locale("sv")));
trace(styler.currencyFormat(123456, {group: ",", decimal: ".", currency: "@", before: false}));
输出结果:
$123,456.00
123.456,00
123,456.00kr
123,456.00@

格式化日期和时间
Date.toString( )方法返回Date对象的字符串类型数值,比如:
// 显示: Tue Jan 5 14:25:20 GMT-0800 2010
对象输出标准的美国日期格式:
var formatter:DateFormat = new DateFormat("m/d/Y");
一旦创建了DateFormat对象,调用format()方法,通过指定的掩码格式化Date实例:
var example:Date = new Date(2010, 0, 5, 10, 25);
var formatter:DateFormat = new DateFormat("m/d/Y");
trace(formatter.format(example)); // 显示: 01/05/2010
formatter.mask = "m/d/Y h:i a";
// 显示: 01/05/2010 10:25 am

4.电话格式化


5.邮编格式化



6.正则表达式
 

热点排行