Adobe Flex 3 ヘルプ

標準フォーマッタの使用

通貨のフォーマット

CurrencyFormatter クラスは、NumberFormatter クラスと同じ機能に加えて、通貨記号の機能も備えています。このクラスには追加のプロパティが 2 つあります。currencySymbolalignSymbol です。NumberFormatter クラスの詳細については、数値のフォーマットを参照してください。

CurrencyFormatter クラスによって、小数点のフォーマット、千の桁区切りのフォーマット、負符号のフォーマットなど、数値データの基本フォーマットオプションが設定されます。format() メソッドは、数値またはストリング形式の数値を受け取り、結果のストリングをフォーマットします。

ストリング形式の数値が format() メソッドに渡されると、ストリングが左から右に解析され、最初に認識された連続する数字の抽出が試みられます。このメソッドでは、後に続く数字と共に桁区切り記号と小数点が解析されます。パーサは、thousandsSeparatorFrom プロパティに別の文字が設定されていない限り、桁区切り記号のカンマ(,)を検索します。パーサは、decimalSeparator プロパティに別の文字が設定されていない限り、小数点のピリオド(.)を検索します。

注意: 数値がストリング値として format() メソッドに渡されると、連続する数字の直前にダッシュ(-)がある場合、それが負符号と認識されます。ダッシュの直後にスペースがある場合は、負符号とは見なされません。

例:CurrencyFormatter クラスの使用

次の例では、MXML ファイルで CurrencyFormatter クラスを使用します。

<?xml version="1.0"?>
<!-- formatters\MainCurrencyFormatter.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            // Define variable to hold the price.        
            [Bindable]
            private var todaysPrice:Number=4025;
        ]]>
    </mx:Script>

    <!-- Declare a CurrencyFormatter and define parameters.-->
    <mx:CurrencyFormatter id="Price" precision="2"
        rounding="none"
        decimalSeparatorTo="."
        thousandsSeparatorTo=","
        useThousandsSeparator="true"
        useNegativeSign="true"
        currencySymbol="$"
        alignSymbol="left"/>

    <!-- Trigger the formatter while populating a string with data.-->
    <mx:TextInput text="Today's price is {Price.format(todaysPrice)}."/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

実行時に、次のテキストが表示されます。

Today's price is $4,025.00.

エラー処理:CurrencyFormatter クラス

エラーが発生した場合、空のストリングが返され、エラーの説明が error プロパティに保存されます。エラーは、送信された値に関する問題、またはユーザー設定を含むフォーマットストリングに関する問題を示します。次の表に説明を示します。

error プロパティの値

エラーが発生する状況

Invalid value

無効な数値が format() メソッドに渡された場合。値は、Number 型または String 型の有効な数値である必要があります。

Invalid format

1 つまたは複数のパラメータに、使用できない設定が含まれる場合。

日付のフォーマット

DateFormatter クラスを使用すると、様々な表示方法を使用して日時に関する情報を表示できます。format() メソッドは Date オブジェクトを受け取り、それをユーザー定義のパターンに基づいてストリングに変換します。また format() メソッドでは、ストリング形式の日付を受け取り、フォーマットする前に有効な Date オブジェクトへの解析を試みます。

DateFormatter クラスには、ストリングとしてフォーマットされた日付を受け取る parseDateString() メソッドがあります。parseDateString() メソッドは、ストリング内の数字と文字の部分を調べて、Date オブジェクトを作成します。このパーサでは、省略しない月名と省略した(3 文字の)月名、時刻、午前と午後、様々な日付の表現方法を解釈することができます。parseDateString() メソッドでストリングを Date オブジェクトに解析できない場合、null が返されます。

次に、解析できるストリングの例をいくつか示します。

"12/31/98" or "12-31-98" or "1998-12-31" or "12/31/1998"
"Friday, December 26, 2005 8:35 am"
"Jan. 23, 1989 11:32:25"

DataFormatter クラスはストリングを左から右に解析します。日付の値は必須であり、時刻の前に表示される必要があります。時刻の値は必須ではありません。時刻が定義されていない日付を持つ Date オブジェクトについては、0:0:0 がデフォルトの時刻になります。タイムゾーンオフセットは解析されません。

パターンストリングの使用

DateFormatter クラスには、パターン文字のストリングを指定します。これを解析することで、適切なフォーマットが決定されます。フォーマットのオプションと、返されるストリングのフォーマットを制御するには、パターン文字のストリングの構成方法を理解する必要があります。

パターンストリングは YYYY/MM のように特定の大文字を使用して構成します。DateFormatter パターンストリングには、パターン文字に加えてそれ以外のテキストを含めることができます。パターン文字が 1 つ含まれていれば、有効なパターンストリングになります。

パターンストリングを作成するときは、通常、パターン文字を繰り返します。反復される文字の数によって、表示方法が決まります。数値の場合、パターン文字の数が最小限の桁数になります。これより少ない桁の数は、この桁になるように 0 が追加されます。例えば、4 文字のパターンストリング "YYYY" は、4 桁の年に対応しています。

月名など、テキスト説明の対応するマッピングがある場合、パターン文字の数が 4 つ以上であれば、完全な形式が使用されます。3 つ以下であれば、短い省略形(利用できる場合)が使用されます。例えば、月名のパターンストリングに "MMMM" を指定した場合、フォーマッタには "Dec" のような省略形ではなく、"December" のような完全な月名が必要です。

時間の値の場合は、1 つのパターン文字が 1 桁または 2 桁に解釈されます。2 つのパターン文字は 2 桁として解釈されます。

次の表で、使用できる各パターン文字について説明します。

パターン文字

説明

Y

年です。パターン文字の数が 2 の場合、年は 2 桁に切り詰められます。それ以外の場合、4 桁で表示されます。次の例の 3 番目に示すように、指定された桁数になるように 0 が追加されます。

例:

YY=05

YYYY=2005

YYYYY=02005

M

月名です。形式は、次の条件により決まります。

  • パターン文字の数が 1 つの場合、形式は 1 桁または 2 桁の数値として解釈されます。
  • パターン文字の数が 2 つの場合、形式は 2 桁の数値として解釈されます。
  • パターン文字の数が 3 つの場合、形式は省略したテキストとして解釈されます。
  • パターン文字の数が 4 つの場合、形式は省略されないテキストとして解釈されます。

例:

M=7

MM=07

MMM=Jul

MMMM=July

D

日付です。1 文字の日付パターンストリングも有効ですが、通常は 2 文字のパターンストリングを使用します。

例:

D=4

DD=04

DD=10

E

曜日です。形式は、次の条件により決まります。

  • パターン文字の数が 1 つの場合、形式は 1 桁または 2 桁の数値として解釈されます。
  • パターン文字の数が 2 つの場合、形式は 2 桁の数値として解釈されます。
  • パターン文字の数が 3 つの場合、形式は省略したテキストとして解釈されます。
  • パターン文字の数が 4 つの場合、形式は省略されないテキストとして解釈されます。

例:

E=1

EE=01

EEE=Mon

EEEE=Monday

A

午前/午後を表します。

J

時刻(0 ~ 23)です。

H

時刻(1 ~ 24)です。

K

午前/午後で区切った時刻(0 ~ 11)です。

L

午前/午後で区切った時刻(1 ~ 12)です。

N

分数です。

例:

N=3

NN=03

S

秒数です。

例:

SS=30

その他のテキスト

その他のテキストをパターンストリングに追加して、ストリングをさらに設定することができます。句読点や数字、任意の小文字を使用できます。大文字はパターン文字として解釈される場合があるため、大文字は使用しないでください。

例:

EEEE, MMM.D, YYYY at L:NN A = Tuesday, Sept. 8, 2005 at 1:26 PM

次の表に、パターンストリングの例と、その結果の例を示します。

パターン

結果

YYYY.MM.DD at HH:NN:SS

2005.07.04 at 12:08:56

EEE, MMM D, 'YY

Wed, Jul 4, '05

H:NN A

12:08 PM

HH o'clock A

12 o'clock PM

K:NN A

0:08 PM

YYYYY.MMMM.DD. JJ:NN A

02005.July.04. 12:08 PM

EEE, D MMM YYYY HH:NN:SS

Wed, 4 Jul 2005 12:08:56

例:DateFormatter クラスの使用

次の例では、MXML ファイルで DateFormatter クラスを使用して、Date オブジェクトを String としてフォーマットします。

<?xml version="1.0"?>
<!-- formatters\MainDateFormatter.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            // Define variable to hold the date.        
            [Bindable]
            private var today:Date = new Date();        
        ]]>
    </mx:Script>

    <!-- Declare a DateFormatter and define parameters.-->
    <mx:DateFormatter id="DateDisplay" 
        formatString="MMMM D, YYYY"/>

    <!-- Display the date in a TextArea control.-->
    <mx:TextArea id="myTA" text="{DateDisplay.format(today)}"/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

実行時には、TextArea コントロールにより現在の日付が表示されます。

エラー処理:DateFormatter クラス

エラーが発生した場合、空のストリングが返され、エラーの説明が error プロパティに保存されます。エラーは、送信された値に関する問題、またはユーザー設定を含むフォーマットストリングに関する問題を示します。次の表に説明を示します。

error プロパティの値

エラーが発生する状況

Invalid value

Date オブジェクトではない値が format() メソッドに渡された場合(空の引数は許可されます)。

Invalid format
  • formatString プロパティが空("")に設定されている場合。
  • formatString プロパティに、パターン文字が含まれていない場合。

数値のフォーマット

NumberFormatter クラスには、小数点、桁区切り記号、負の記号を使用したフォーマットなど、数値データの基本フォーマットオプションがあります。format() メソッドは、数値またはストリング形式の数値を受け取り、結果のストリングをフォーマットします。

ストリング形式の数値が format() メソッドに渡されると、ストリングが左から右に解析され、最初に認識された連続する数字の抽出が試みられます。このメソッドでは、後に続く数字と共に桁区切り記号と小数点が解析されます。パーサは、thousandsSeparatorFrom プロパティに別の文字が設定されていない限り、桁区切り記号のカンマ(,)を検索します。パーサは、decimalSeparator プロパティに別の文字が設定されていない限り、小数点のピリオド(.)を検索します。

注意: format() メソッドでは、連続する数字の直前にダッシュ(-)がある場合、それが負数として認識されます。ダッシュの直後にスペースがある場合は、負数とは見なされません。

NumberFormatter クラスの rounding および precision プロパティは、数値の小数点のフォーマットにも影響します。roundingprecision の両方のプロパティを使用した場合、まず rounding が適用され、次に precision に指定された値を使用して小数点以下の桁数が設定されます。そのため、例えば 303.99=304.00 のように、数値を丸めながら、小数点以下の桁を残すことができます。

例:NumberFormatter クラスの使用

次の例では、MXML ファイルで NumberFormatter クラスを使用します。

<?xml version="1.0"?>
<!-- formatters\MainNumberFormatter.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            // Define variable to hold the number.        
            [Bindable]
            private var bigNumber:Number = 6000000000.65;
        ]]>
    </mx:Script>

    <!-- Declare and define parameters for the NumberFormatter.-->
    <mx:NumberFormatter id="PrepForDisplay"
        precision="0" 
        rounding="up"
        decimalSeparatorTo="."
        thousandsSeparatorTo=","
        useThousandsSeparator="true"
        useNegativeSign="true"/>

    <!-- Trigger the formatter while populating a string with data.-->
    <mx:TextInput text="{PrepForDisplay.format(bigNumber)}"/>  
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

実行時に、次のテキストが表示されます。

6,000,000,001

エラー処理:NumberFormatter クラス

エラーが発生した場合、空のストリングが返され、エラーの説明が error プロパティに保存されます。エラーは、送信された値に関する問題、またはユーザー設定を含むフォーマットストリングに関する問題を表します。次の表で詳しく説明します。

error プロパティの値

エラーが発生する状況

Invalid value

無効な数値が format() メソッドに渡された場合。値は、Number 型または String 型の有効な数値である必要があります。

Invalid format

1 つまたは複数のパラメータに、使用できない設定が含まれる場合。

電話番号のフォーマット

PhoneFormatter クラスを使用すると、エリアコードと加入者コードのフォーマットを調整して、電話番号のフォーマットを設定できます。国コードと国際フォーマットの設定を調整することもできます。PhoneFormatter.format() メソッドに渡す値は、Number オブジェクトまたは数字のみを含むストリングであることが必要です。

PhoneFormatter の formatString プロパティは、フォーマット済みストリングをフォーマットパターンの定義として受け取ります。次に示す表に、formatString の一般的な設定値を示します。PhoneFormatter の format() メソッドは、連続する数字を受け取ります。この数字は、formatString の値のプレースホルダ(#)記号に対応します。formatString プロパティのプレースホルダ記号の数と、format() メソッドの数字の数が一致する必要があります。

formatString の値

入力

出力

###-####

1234567

(xxx) 456-7890

(###) ### ####

1234567890

(123) 456-7890

###-###-####

11234567890

123-456-7890

#(###) ### ####

11234567890

1(123) 456 7890

#-###-###-####

11234567890

1-123-456-7890

+###-###-###-####

1231234567890

+123-123-456-7890

前に示した表では、ダッシュ(-)が区切りエレメントとして使用されています。このダッシュは、ピリオド(.)やスペースに置き換えることができます。必要に応じて validPatternChars プロパティを使用することで、使用可能なデフォルトの文字セットを変更できます。numberSymbol プロパティを使用して、数値のプレースホルダを表すデフォルトの文字を変更できます。例えば、# を $ に変更できます。

注意: 7 桁の米国形式の電話番号については、ショートカットが用意されています。areaCode プロパティに値が含まれ、7 桁の形式のストリングを使用した場合、返されるストリングに自動的に市外局番が追加されます。エリアコードのデフォルトの形式は(###)です。この形式は areaCodeFormat プロパティを使用して変更できます。エリアコードは、3 桁のプレースホルダーを使用する限り任意に設定できます。

例:PhoneFormatter クラスの使用

次の例では、MXML ファイルで PhoneFormatter クラスを使用します。

<?xml version="1.0"?>
<!-- formatters\MainPhoneFormatter.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            // Define variable to hold the phone number.        
            [Bindable]
            private var newNumber:Number = 1234567;
        ]]>
    </mx:Script>

    <!-- Declare a PhoneFormatter and define formatting parameters.-->
    <mx:PhoneFormatter id="PhoneDisplay" 
        areaCode="415" 
        formatString="###-####"/>

    <!-- Trigger the formatter while populating a string with data-->
    <mx:TextInput id="myTI" 
        initialize="myTI.text=PhoneDisplay.format(newNumber);"/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

実行時に、次のテキストが表示されます。

(415) 123-4567

エラー処理:PhoneFormatter クラス

エラーが発生した場合、空のストリングが返され、エラーの説明が error プロパティに保存されます。エラーは、送信された値に関する問題、またはユーザー設定を含むフォーマットストリングに関する問題を示します。次の表に説明を示します。

error プロパティの値

エラーが発生する状況

Invalid value
  • 無効な数値が format() メソッドに渡された場合。値は、Number 型または String 型の有効な数値である必要があります。
  • 値の桁数が、format ストリングで指定されている桁数と異なります。
Invalid format
  • formatString 内の文字が、validPatternChars プロパティで指定されている文字と一致しない場合。
  • areaCodeFormat プロパティが指定されているのに対して、数値プレースホルダの数が 3 つではない場合。

郵便番号のフォーマット

ZipCodeFormatter クラスを使用すると、米国の 5 桁または 9 桁の郵便番号、またはカナダの 6 文字の郵便番号にフォーマットを設定できます。ZipCodeFormatter クラスの formatString プロパティは、フォーマット済みストリングをフォーマットパターンの定義として受け取ります。formatString プロパティはオプションです。省略した場合、デフォルト値 ##### が使用されます。

フォーマットする値の桁数と formatString プロパティの値の桁数は、米国の郵便番号では 5 桁または 9 桁、カナダの郵便番号では 6 文字にする必要があります。

次の表に、一般的な formatString の値と、入力値、出力値を示します。

formatString の値

入力

出力

フォーマット

#####

94117, 941171234

94117, 94117

5 桁の米国郵便番号

#####-####

941171234, 94117

94117-1234, 94117-0000

9 桁の米国郵便番号

### ###

A1B2C3

A1B 2C3

6 文字のカナダ郵便番号

米国の郵便番号の場合、9 桁のフォーマットが要求されたときに 5 桁の値が入力されると、9 桁のフォーマットに合わせるために値に -0000 が付加されます。逆に、5 桁のフォーマットが要求されたときに 9 桁の値が入力されると、値が 5 桁に切り詰められます。

カナダの郵便番号の場合、formatString にも入力値にも 6 桁の値だけが許可されます。

注意: 米国の郵便番号では、数値のみが有効です。カナダの郵便番号では、英数字を使用できます。アルファベット文字は大文字である必要があります。

例:ZipCodeFormatter クラスの使用

次の例では、MXML ファイルで ZipCodeFormatter クラスを使用します。

<?xml version="1.0"?>
<!-- formatters\MainZipFormatter.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            // Define variable to hold the ZIP code.        
            [Bindable]
            private var storedZipCode:Number=123456789;
        ]]>
    </mx:Script>

    <!-- Declare a ZipCodeFormatter and define parameters.-->
    <mx:ZipCodeFormatter id="ZipCodeDisplay" 
        formatString="#####-####"/>

    <!-- Trigger the formatter while populating a string with data.-->
    <mx:TextInput text="{ZipCodeDisplay.format(storedZipCode)}"/> 
</mx:Application>

前の例で実行する SWF ファイルは以下のとおりです。

実行時に、次のテキストが表示されます。

12345-6789

エラー処理:ZipCodeFormatter クラス

エラーが発生した場合、空のストリングが返され、エラーの説明が error プロパティに保存されます。エラーは、送信された値に関する問題、またはユーザー設定を含むフォーマットストリングに関する問題を表します。次の表で詳しく説明します。

error プロパティの値

エラーが発生する状況

Invalid value
  • 無効な数値が format() メソッドに渡された場合。値は、Number 型または String 型の有効な数値である必要があります。ただし、カナダの郵便番号の場合は英数字の値を使用できます。
  • 数値の桁数が、formatString プロパティで指定されている桁数と一致しない場合。
Invalid format
  • formatString 内の文字が、validFormatChars プロパティで指定されている文字と一致しない場合。
  • 数値プレースホルダの数が、9、5、または 6 ではない場合。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート