包 | spark.formatters |
类 | public class NumberFormatter |
继承 | NumberFormatter NumberFormatterBase GlobalizationBase AdvancedStyleClient EventDispatcher Object |
实现 | IFormatter |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
int
、uint
和 Number
对象的格式。
此类是包装 flash.globalization.NumberFormatter 类的包装器类。因此,特定于区域设置的格式化由 flash.globalization.NumberFormatter 提供。但是,此 NumberFormatter 类可在 MXML 声明中使用,为请求的区域设置 ID 名称使用区域设置样式,并具有可绑定的方法和属性。
flash.globalization.NumberFormatter 类使用基础操作系统来实现格式化功能并提供特定于区域设置的数据。某些操作系统不支持 flash.globalization 类,在这些操作系统上,由包装器类提供回退功能。
MXML 语法隐藏 MXML 语法The <s:NumberFormatter>
tag inherits all of the tag
attributes of its superclass and adds the following tag attributes:
<s:NumberFormatter Properties negativeNumberFormat="locale and OS dependent" />
相关 API 元素
方法 | 由以下参数定义 | ||
---|---|---|---|
构造新的 NumberFormatter 对象以根据给定区域设置的约定设置数字的格式。 | NumberFormatter | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
删除此组件实例的样式属性。 | AdvancedStyleClient | ||
将事件调度到事件流中。 | EventDispatcher | ||
设置数字格式。 | NumberFormatter | ||
[静态]
列出此类支持的所有区域设置 ID 名称。 | NumberFormatter | ||
为应用于该组件的类型选择器返回 CSSStyleDeclaration 对象数组,如果不存在则返回 null。 | AdvancedStyleClient | ||
[覆盖]
获取已在此组件的样式查找链中的某个位置设置过的样式属性。 | GlobalizationBase | ||
如果 currentCSSState 不为 null,则返回 true。 | AdvancedStyleClient | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
该类或扩展该类的类在 MXML 声明中使用时,调用 initialized 方法。 | AdvancedStyleClient | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
如果 cssState 与 currentCSSState 匹配,则返回 true。 | AdvancedStyleClient | ||
确定此实例与给定类型相同,还是属于给定类型的子类。 | AdvancedStyleClient | ||
将样式更改传播到此样式客户端实例的子项。 | AdvancedStyleClient | ||
解析字符串并返回包含解析的元素的 NumberParseResult 对象。 | NumberFormatter | ||
解析仅包含数字和可选空白字符的字符串并返回一个数字。 | NumberFormatter | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置内部样式缓存值,以便 getStyle() 方法可以起作用。 | AdvancedStyleClient | ||
将 EffectManager 注册为每个效果事件的事件侦听器之一。 | AdvancedStyleClient | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
对此组件实例设置样式属性。 | AdvancedStyleClient | ||
检测对样式属性的更改。 | AdvancedStyleClient | ||
首次初始化组件样式时,Flex 会调用 stylesInitialized() 方法。 | AdvancedStyleClient | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
actualLocaleIDName | 属性 |
actualLocaleIDName:String
[只读] [覆盖] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
由该类对象使用的实际区域设置 ID 的名称。这是用于从操作系统访问格式化数据和功能的区域设置。
如果由 locale
样式所设置的区域设置不可用,则 actualLocaleIDName
的值将不同于 locale
样式的值。它指明正在使用的回退区域设置。如果区域设置样式设置为 LocaleID.DEFAULT
,将使用由用户的操作系统指定的区域设置的名称。
此属性可用作数据绑定的源。修改此属性后,将调度 change
事件。
实现
override public function get actualLocaleIDName():String
相关 API 元素
NumberFormatter()
negativeNumberFormat | 属性 |
negativeNumberFormat:uint
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
表示负数的格式设置模式的数值。此模式定义负号或圆括号相对于设置了格式的数字的数字部分的位置。
下表总结了可能的负数格式。当设置负数的格式时,格式中的负号由 negativeSymbol
属性的值替换,“n”字符由设置了格式的数值替换。
负数格式类型 | 格式 |
0 | (n) |
1 | -n |
2 | - n |
3 | n- |
4 | n - |
默认值取决于区域设置和操作系统。
此属性可用作数据绑定的源。修改此属性后,将调度 change
事件。
实现
public function get negativeNumberFormat():uint
public function set negativeNumberFormat(value:uint):void
引发
ArgumentError — 如果指定的值不介于 0 到 4 之间。
|
相关 API 元素
NumberFormatter | () | 构造函数 |
public function NumberFormatter()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
构造新的 NumberFormatter 对象以根据给定区域设置的约定设置数字的格式。
此类的区域设置是由区域设置样式提供的。可以使用以下几种方法来设置区域设置样式:
-
在 MXML 声明中使用该类,并从包含声明的文档中继承区域设置。示例:
<fx:Declarations> <s:NumberFormatter id="nf" /> </fx:Declarations>
-
使用 MXML 声明并在赋值列表中指定区域设置值。示例:
<fx:Declarations> <s:NumberFormatter id="nf_French_France" locale="fr_FR" /> </fx:Declarations>
-
调用 setStyle 方法。例如:
nf.setStyle("locale", "fr-FR")
-
调用 UIComponent 的
addStyleClient()
方法来继承UIComponent
的样式。
如果 locale
样式不是由以上方式之一设置的,则该类的实例会作为 StyleClient
添加至 topLevelApplication
中,并因此在调用 locale
从属属性 getter 或 locale
从属方法时,会从 topLevelApplication
对象中继承 locale
样式。
此类的大部分属性将自动根据区域设置样式来设置。如果区域设置样式发生改变,则任何未明确设置的属性也都会根据新的区域设置来进行更新。请注意,正在使用的实际区域设置是由 actualLocaleIDName 属性来指定的。
相关 API 元素
format | () | 方法 |
public function format(value:Object):String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
设置数字格式。
此函数根据格式程序的属性值设置数字格式。如果在设置 locale
样式后没有修改属性,则根据操作系统提供的由 actualLocaleIDName
属性标识的区域设置的特定于区域设置的约定为数字设置格式。要自定义格式,可以更改属性以控制设置数字格式的特定方面。
可以使用此函数设置非常大的数字和非常小的量级的数字的格式。但有效位数不得超过 Number
对象提供的精度。不支持科学计数法。
如果由于非法输入值或其它错误在设置格式时发生了错误,则默认情况下 format()
方法将返回 null
。但是,如果 errorText
属性为非 null,则将返回 errorText
属性的值。将设置 lastOperationStatus
属性以指明发生的错误。
参数
value:Object — 一个对象,其中包含要设置格式的数值。如果对象不是 Number ,则将使用 Number() 转换函数来转换为数字。
|
String — 设置了格式的数字字符串。
|
相关 API 元素
getAvailableLocaleIDNames | () | 方法 |
parse | () | 方法 |
public function parse(inputString:String):NumberParseResult
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
分析字符串并返回包含已分析的元素的 NumberParseResult
对象。
NumberParseResult
对象包含在输入字符串中找到的第一个数字的值、字符串内数字的起始索引以及字符串中数字之后的第一个字符的索引。
如果字符串中不包含数字,NumberParseResult 的属性值设置为 NaN
,startIndex
和 endIndex
属性值设置为十六进制值 0x7fffffff
。
此函数使用 decimalSeparator
属性的值确定包含小数的数字部分,使用 groupingSeparator
属性确定数字位数内允许的字符,使用 negativeNumberFormat
属性控制负值的表示方法。
下表标识为不同的 NegativeNumberFormat
值解析的字符串的结果:
NegativeNumberFormat | 输入字符串 | 结果 |
(n) | “(123)”或“( 123 )” | “-123” |
-n | “-123”或“- 123” | “-123” |
- n | “-123”或“- 123” | “-123” |
n- | “123-”或“123 -” | “-123” |
n - | “123-”或“123 -” | “-123” |
允许数字和负号或括号之间存有单个空格。空白字符是 Unicode 字符数据库中具有 Space Separator (Zs) 属性的字符。有关详细信息,请参阅 http://www.unicode.org/ucd/。
确定有效的数字时,忽略其它属性。具体来说,忽略 digitsType
属性的值,并且数字可以来自 NationalDigitsType
类中枚举的任何数字集。groupingPattern
和 useGrouping
属性的值不影响数字的解析。
如果字符串中数字的前面或后面有加号“+”,加号被视为不属于数字部分的字符。
此函数不解析包含以科学记数法表示的数字(例如,1.23e40)的字符串。
参数
inputString:String — 要解析的输入字符串。
|
NumberParseResult — NumberParseResult 对象包含数值和包含该数值的字符串部分的起点与终点的索引。
|
引发
TypeError — 如果 inputString 参数为 null。
|
相关 API 元素
示例 ( 如何使用本示例 )
var nf:NumberFormatter = new NumberFormatter(); nf.setStyle("locale","fr-FR"); var str:String = "1,56 mètre" var result:NumberParseResult = nf.parse(str); trace(result.value) // 1.56 trace(str.substr(0,result.startIndex)); // "" trace(str.substr(result.startIndex, result.endIndex)); // "1,56" trace(str.substr(result.endIndex)); // " mètre"
parseNumber | () | 方法 |
public function parseNumber(parseString:String):Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10.1, AIR 2.5 |
解析仅包含数字和可选空白字符的字符串并返回一个数字。如果字符串不以数字开头或包含除空格之外的不属于数字部分的字符,则此方法返回 NaN
。忽略数字前后的空格。
如果数字位数前面或后面跟着一个加号“+”,这个加号作为非空白字符处理。返回值为 NaN
。
有关数字解析和有效数字构成部分的更多信息,请参阅解析功能的说明。
参数
parseString:String — 要解析的输入字符串。
|
Number — 包含数字值的 Number 对象。
|
引发
TypeError — 如果 parseString 为 null
|
相关 API 元素
<?xml version="1.0" encoding="utf-8"?> <!-- Sample program for spark.formatters.NumberFormatter --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Declarations> <s:NumberFormatter id="numberFormatter"/> </fx:Declarations> <fx:Script> <![CDATA[ [Bindable] private var number:Number = 123456789.123456789; ]]> </fx:Script> <mx:Form> <mx:FormItem label="Input Locale ID Name"> <mx:HBox> <s:TextInput id="inputLocaleIDName"/> <!-- Upon button click, sets the locale style on the document UI component. The formatter will inherit this style. --> <s:Button click="setStyle('locale', inputLocaleIDName.text);" label="Apply"/> </mx:HBox> <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/> </mx:FormItem> <mx:FormItem label="Use Grouping"> <mx:CheckBox id="useGrouping" change="numberFormatter.useGrouping= useGrouping.selected"/> </mx:FormItem> <mx:FormItem label="Fractional Digits"> <mx:TextInput id="fractionalDigits" change="numberFormatter.fractionalDigits = Number(fractionalDigits.text)"/> </mx:FormItem> <mx:FormItem label="Actual Locale ID Name"> <mx:Text text="{numberFormatter.actualLocaleIDName}"/> </mx:FormItem> <mx:FormItem label="Formatted Result"> <mx:Text text="{numberFormatter.format(number)}"/> </mx:FormItem> </mx:Form> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <!-- Sample program for spark.formatters.NumberFormatter --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Declarations> <s:NumberFormatter id="numberFormatter"/> </fx:Declarations> <mx:Form> <mx:FormItem label="Input Locale ID Name"> <mx:HBox> <s:TextInput id="inputLocaleIDName"/> <!-- Upon button click, sets the locale style on the document UI component. The formatter will inherit this style. --> <s:Button click="setStyle('locale', inputLocaleIDName.text);" label="Apply"/> </mx:HBox> <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/> </mx:FormItem> <mx:FormItem label="Input Number"> <s:TextInput id="inputNumber"/> <mx:Text text="Example: {numberFormatter.format(123456789.123)}"/> </mx:FormItem> <mx:FormItem label="Actual Locale ID Name"> <mx:Text text="{numberFormatter.actualLocaleIDName}"/> </mx:FormItem> <mx:FormItem label="Parsed Result"> <mx:Text text="{numberFormatter.parseNumber(inputNumber.text).toString()}"/> </mx:FormItem> </mx:Form> </s:Application>
Tue Jun 12 2018, 11:04 AM Z