アクセシビリティ
アドビ
サインイン プライバシー マイアカウント

Flex リリースノート

Flex 1.5 リリースノート

Macromedia Flex 1.5 では、新機能が追加され、パフォーマンスと信頼性が向上した他、ドキュメントの拡充など多くの点が改良されました。

このドキュメントは、次のセクションで構成されています。

Flex 1.5 のインストール方法については、『Flex 1.5 のインストール手順』を参照してください。

重要 : Flex 1.5 ベータまたは GMC 版のアンインストール

Flex 1.5 インストーラを使って、既存の Flex 1.5 ベータまたは GMC 版に上書きインストールすることはできません。Flex 1.5 ベータ版または Flex 1.5 GMC 版がインストールされている場合は、正式版の Flex 1.5 をインストールする前に必ずアンインストールしてください。Flex 1.5 ベータ版または Flex 1.5 GMC 版がインストールされている状態で、同じ場所に上書きインストールしようとすると、違う場所を入力するように要求されます。

新機能

Flex 1.5 の主な新機能と変更点は次のとおりです。新機能の詳細については、『Flex Developer Center』* を参照してください。

  • プログラムスキン — Flex には、プログラムスキンおよびグラフィカルスキンのサンプルファイルが付属しています。プログラムスキンを使用したコントロールの外観を変更するには、ActionScript クラスファイルを編集してから SWC ファイルにコンパイルし、その SWC ファイルをテーマとして Flex アプリケーションと共にデプロイします。グラフィカルスキンの場合は、Macromedia Flash MX 2004 環境を使用し、FLA ファイルを編集してから SWC ファイルとして書き出します。
  • チャート — Flex にはチャート (グラフ) 作成コントロールが豊富に用意されています。Flex チャートと DataProvider API を連携させることで、データをすばやく簡単に視覚化できます。
  • ランタイム共有ライブラリ — ランタイム共有ライブラリを作成できます。アセットを外部化することにより、複数のアプリケーションで再利用することが可能です。
  • SOAP — <mx:RemoteObject> タグにおける SOAP エンコーディングのサポートは廃止されました。
  • カスタム認証 — <mx:RemoteObject> タグで、AMF を使用したカスタム認証が新たにサポートされました。
  • HorizontalList および TileList コントロール — アイテムの一覧を水平方向またはタイル状に並べて表示するコントロールが追加されました。
  • SWC コンパイラ — MXML ソースから SWC ファイルをコンパイルするためのコマンドラインユーティリティ compc が追加されました。SWC ファイルは、コンポーネントとして配布することや、ランタイム共有ライブラリとして使用することができます。
  • パーセント値による高さと幅の設定 — コンテナおよびコントロールの高さと幅のプロパティに絶対ピクセル値だけでなく、パーセント値を設定できるようになりました。
  • レイアウトパフォーマンスの向上 — Flex 1.5 では、インスタンス化を保留してレイアウトパフォーマンスを向上するための処理が容易になりました。
  • 新しいスタイルプロパティ — コントロールをより高度にカスタマイズできる新しいスタイルプロパティが追加されました。

以上の改良点については、『Flex アプリケーション開発ガイド』に詳しい説明があります。

Flex 1.5 では、上記以外、次の点も改良されました。

  • スタイルのパフォーマンス
  • デバッガのパフォーマンス
  • エフェクトの滑らかさ
  • DataGrid コンポーネントのサイズ変更時のパフォーマンス
  • RemoteObject のパフォーマンス
  • Macromedia Flash Debug Player のバグ修正および機能強化
  • リストコンポーネントへの機能追加 (テキストの折り返し、行の高さの可変など)
  • プログラムによるスキン適用のサポート強化
  • 通貨データの検証
  • 新しいサンプルアプリケーション (PhotoViewer)
  • WebSphere 5 および Oracle 10g AS での IBM AIX 5.2 サポート
  • 『Flex ActionScript および MXML API リファレンスガイド』のコードサンプル

互換性に関する注意事項

Flex 1.0 (アップデータ 2) 向けに作成されたアプリケーションは、Flex 1.5 に加えられた変更により、従来とは異なる動作をする可能性があります。Flex 1.5 での変更点には次の種類があります。

  • Flex 1.5 で変更された機能
  • Flex 1.5 で削除された機能
  • Flex 1.5 で使用を推奨されなくなった機能

推奨されない機能やプロパティを使用している場合は、次の点に注意してください。

  • 使用を避けることを促すコンパイル警告が表示されます。
  • Flex 1.5 では引き続き動作します。
  • 今後のメジャーなリリースでは使用できなくなります。

使用を避けることを促す警告は、"flex-config.xml" で、show-deprecated-warningsfalse に設定することにより抑制できます。

互換性に関するすべての注意事項の一覧と、互換性の問題に対処するためにアプリケーションを修正する方法については、『既存の Flex アプリケーションの移行』を参照してください。

既知の問題

Flex 1.5 における既知の問題点を次の一覧に示します。

73758 2 つの MXML コンポーネント間で、CSS タイプセレクタの設定が互いにオーバーライドされます。Flex では、最後にインスタンス化されたコンポーネントによって設定されたスタイルが優先されます。

73929 Opera 7.11 Browser で、JavaScript が無効化されている場合は MXML ファイルがサポートされません。

74581 実行時に Grid コントロール内で、GridItem の colSpan プロパティまたは rowSpan プロパティを変更しても、レイアウトが変化しません。この問題を回避するには、次のようにして、Grid の invalidateLayout() メソッドを呼び出します。

myGrid.invalidateLayout()

75839 デバッグセッションを停止した場合、デバッガを再起動するには、Microsoft Internet Explorer ウィンドウを閉じてから開き直す必要があります。この問題を回避するには、Internet Explorer の [ショートカットを起動するためにウィンドウを再使用する] オプションを選択します。

79445 SWF ファイルを動的にダウンロードするには、ロードされるファイルがロード元のファイルと同じディレクトリにあるか、絶対パス名を使用することが必要です。

79449 カーソルはすべて最上位のアプリケーションファイルで定義する必要があるにもかかわらず、そのカーソルを変更するコードはアプリケーション内の任意の場所に配置できます。2 つのアプリケーションが同時に実行されている場合、2 番目のアプリケーションのカーソルが両方のアプリケーションに適用されてしまいます。

79925 ローカル SharedObject でデータバインディングが正しく機能しません。この問題を回避するには、ローカル SharedObject を含んだラッパーオブジェクトを作成し、他のアプリケーションから getter と setter にアクセスできるようにします。そして、適切なイベントを定義し、その発生時にローカル SharedObject を更新します。

81132 TabBar コンテナは、PageUp、PageDown、Home、および End キーの操作に反応しません。

82041 エラーのある MXML ファイルを、ファイル名拡張子 .swf を使用して要求すると、空白の SWF ファイルが表示されます。たとえば、エラーのある myFile.mxml を、http://baseurl/myFile.mxml.swf として要求すると、空白のページがブラウザに表示されます。ファイルをどのように要求したかに関係なく、システムログにコンパイルエラーが記録されます。

85026 UTF-8 または ISO-8859-1 以外でエンコードされた XML ファイルを <mx:HTTPService> タグで指定した場合、Flex はそのファイルを処理できません。

86767 fdb コマンドラインデバッガで、他の MXML ファイルをロードする MXML ファイルを開いた場合、ブラウザの表示を更新するとアプリケーションが停止することがあります。この問題を回避するには、MXML ファイルを個別にデバッグする必要があります。

86832 Netscape Navigator 4.8 で、Flex アプリケーションが小さく表示されます (50 × 50 ピクセル)。この問題を回避するには、アプリケーションの height プロパティと width プロパティを明示的に設定します。

87024 Box コンテナで、幅と高さを明示的に設定しているとコンテナのレイアウト方向を動的に変更できません。

87038 ?versionChecked=true の後に URL パラメータを追加するか、または ?versionChecked=false を指定すると、Opera、Safari、Netscape、Mozilla、および Firefox ブラウザでは新しいブラウザウィンドウを開こうとし続けます。

87109 Array.push() メソッドで、ComboBox コントロールなど、データドリブンコンポーネントの dataProvider にデータが渡されない場合があります。この問題を回避するには、addItem() メソッドを使用します。

87316 "flex-config.xml" ファイルで Flash Player の検出を無効にしても、Microsoft Internet Explorer に対しては設定の効果がありません。

87317 "flex-config.xml" ファイルでサービスを定義する際、サービスのエンドポイント URL 内に {context.root} を使用すると、<allow-unnamed-access> タグの値が適用されません。この問題の例を次に示します。

<service name="SampleSalaryWS">
 <wsdl>{context.root}/services/SalaryWS?wsdl</wsdl>
 <endpoints>
 <endpoint>{context.root}/services/SalaryWS</endpoint>
 </endpoints> 
 <allow-unnamed-access>false</allow-unnamed-access>
 </service>

このサービスを名前のないホワイトリストで許可している場合、次のように flashproxy を使用して URL を指定すると、サービスの WSDL URL にアクセスできてしまいます。

http://localhost:8100/samples/flashproxy?target=http://localhost:8100/samples/services/SalaryWS?wsdl

この問題を回避するには、サービスの定義で、{context.root} ではなく、WSDL とエンドポイント URL を指定します。

10014 Web サービス呼び出しに渡すパラメータが WSDL の宣言に適合しているかどうかの検証が以前よりも厳格になっています。したがって、WSDL の定義で必須となっているメソッドパラメータを指定していない場合、Flex からエラーがスローされます。以前のリリースでは、メソッドを呼び出す前にこのパラメータチェックを実行していませんでした。

102646 Button コントロールにタブが移動し、かつ、クリックイベントハンドラによってその Button コントロールの enable プロパティが false に設定された場合、フォーカスは依然としてそのコントロールに残っており、スペースバーを押すと click イベントが引き続き発生します。この問題を回避するには、イベントハンドラで setFocus() 呼び出しを追加して、フォーカスを別のコントロールに移します。

102934 ColumnChart コントロールの垂直軸で、原点に 0 ではなく -2.77555756156289e-16 という値が表示されます。この問題を回避するには、次のコードを使用して AxisRenderer の labelFunction プロパティを設定します。

<mx:ColumnChart>
    <mx:verticalAxisRenderer>
        <mx:AxisRenderer labelFunction="labelFunc" />
    </mx:verticalAxisRenderer>

    <!-- その他のコードが続きます。 -->
</mx:ColumnChart>

<mx:Script>
    function labelFunc(val) {
        return Math.round(Number(val) * 100)/100;
    }
</mx:Script7>

103110 WebSphere サーバーで、カスタム認証を使用して RemoteObject 要求を認証した後、基本認証を使用するように設定した後続の要求を再認証する必要があります。

103309 ポップアップウィンドウ上で ControlBar コンテナを使用すると、メインアプリケーションのレイアウトが正しく表示されないことがあります。この問題を回避するには、アプリケーションの作成サイクル内で、そのようなポップアップウィンドウを開くタイミングを可能な限り遅らせます。たとえば、Application コンテナの creationComplete イベントのイベントハンドラ内でポップアップウィンドウを開いてみてください。それでも効果がない場合は、いずれかの子コンポーネントの creationComplete イベントのイベントハンドラ内でポップアップウィンドウを開いてみてください。

103375 MXML ファイルに対する要求に recompile=true 以外の URL パラメータを追加すると、Microsoft Internet Explorer では HTML 出力の中に警告が表示されません。

103870 Flex の UNIX インストーラでは、同梱されているバージョンの Sun 1.4.2 JVM を使用します。これ以外の JVM を使用する必要がある場合は、次のように、代わりに使用する Java 実行可能ファイルをコマンドラインパラメータ LAX_VM で指定します。

./Flex-15-lin.bin LAX_VM /$JAVA_HOME/bin/java

104263 統合版の Flex をアンインストールする場合は、その前に統合 JRun サーバーを停止しておく必要があります。

104458 チャートを含んだ MXML ファイルを Loader コントロールでロードすると、AxisRenderer のラベルが正しく回転して表示されないことがあります。

104495 WebLogic サーバーで自動デプロイによって Flex アプリケーションを再デプロイした場合、WebLogic でアプリケーションコンテキストを非直列化しようとするときサーバーのログに例外が記録されることがあります。Flex ではアプリケーションの再起動時に必要に応じてオブジェクトを再作成するので、このような例外は無視できます。

104625 アプリケーション内で参照しているパッケージ名と、いずれかのコンポーネントの id が重複することはできません。たとえば、次のコードではコンパイルエラーが発生します。

<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
    <x:MyPanel xmlns:x="inner.*"/>
    <mx:Button id="inner" label="App Button"/>
</mx:Application>

104691 themeColor プロパティを実行時に設定した場合、MenuBar コントロールの子である Menu コントロールで有効にならない場合があります。この問題を回避するには、themeColor プロパティの値をコンパイル時に設定します。

104813 チャートコントロールは、<mx:Repeater> タグ内で使用できません。

105420 RRSL 記述ファイル (.sws ファイル) から参照しているいずれかのコンポーネントに <mx:WebService>、<mx:RemoteObject>、または <mx:HTTPService> タグが含まれていると、RSL のコンパイルが失敗します。この問題を回避するには、次のようにします。

  1. <mx:WebService>、<mx:RemoteObject>、または <mx:HTTPService> タグを含んだコンポーネントについては、compc を使用して SWC ファイルを作成します。
  2. コンパイルした SWC ファイルを、"flex-config.xml" ファイルの <lib-path> タグで指定したフォルダ (例 : "user_classes" ディレクトリ) に配置します。
  3. 該当するコンポーネントのソースコードをコンパイラのパスから削除します (ソースコードファイルを削除または名前変更して、アプリケーションのコンパイル時にコンパイル対象とならないようにします)。

以上により、RSL のコンパイル時にコンポーネントのソースファイルではなくコンパイル済みの SWC ファイルが使用されるので、エラーは発生しません。

105546 Web サービスの結果または HTTP サービスの結果が String オブジェクトのストリングとしてデータ型指定されている場合、結果に含まれる空の配列エレメントは正しく非直列化されません。この問題を回避するには、結果ハンドラ内で、次の関数に event.result オブジェクトを渡して呼び出します。

function fixArrayResults(results) {
	for(var i=0; i<results.length; i++) {
		if (results[i].toString()=="" && results[i] instanceof String)
		results[i]="";
	}
}

105758 Macromedia Central で Flex を使用する場合、mx.central.encryption.MD5.encode() 関数の呼び出し時にタイプの不一致エラーが発生することがあります。この問題を回避するには、次に示す内容の "MD5.as" というファイルを "WEB-INF\flex\system_classes" ディレクトリに追加します。

intrinsic class MD5 {
 static function encode(messageString:String):String;
 }

これにより、mx.central.encryption.MD5.encode() 関数を次のようにグローバルな名前空間で呼び出せるようになります。

var digest:String = MD5.encode(userID);

Flex Builder の互換性

Flex Builder 1.0 は Flex 1.5 の新機能をサポートしていませんが、Flex 1.5 でも十分に活用できます。Flex Builder 1.0 では、1.5 の最新機能 (チャート、TileList、HorizontalList、パーセント値での幅と高さの指定など) に関してはコードヒントやデザインビューの機能を使用できません。しかし、MXML または ActionScript ファイルを開いて編集する作業、組み込みブラウザでの実行およびデバッグ作業、ネットワークモニタの使用、および [出力] パネルでのビルドエラーの確認などについては、Flex Builder 1.0 で問題なく実行できます。コンポーネントのアップデート (Update Components) とコンポーネントのパッケージ化 (Package Component) は、Flex 1.0 用にビルドされた Flex コンポーネントに対しては正常に機能しますが、Flex 1.5 用にビルドされた Flex コンポーネントに対しては機能しない場合があります。Macromedia では、Flex 1.5 の新機能をサポートしたベータ版の Flex Builder をリリースする予定ですが、それまでの間は引き続き Flex Builder 1.0 をご利用ください。

最新の追加情報

このセクションでは、Flex のマニュアル類の内容が決定した後に追加された最新情報を示します。

HTTP サービスおよび Web サービスにおける XML の非直列化処理が改良され、データ型の区別に対応

HTTP サービスおよび Web サービスにおける XML の非直列化処理で、データ型に応じて適切な処理が行われるようになりました。Flex 1.0 では、数値と "true" および "false" がストリングに変換されていましたが、Flex 1.5 では、数値は最初の桁が 0 でない限りすべて数値型の値に変換され、"true" および "false" はブール値に変換されます。

詳細については、『既存の Flex アプリケーションの移行』を参照してください。

リモートオブジェクトサービスにおける、参照による直列化のサポート

リモートオブジェクトサービスでは、すでに直列化されたオブジェクトを参照により使用できるようになりました。これにより、共通に使用されているオブジェクトを何度も繰り返し直列化し直す必要がなくなります。

詳細については、『既存の Flex アプリケーションの移行』を参照してください。

DataGrid の機能強化

このセクションでは、『Flex アプリケーション開発ガイド』には記載されていない、DataGrid の新機能について説明します。

DataGrid クラスに、列内アイテムの並べ替えをカスタマイズするための sortCompareFunction プロパティが新たに追加されました。このプロパティは、ユーザーが DataGrid の内容を並べ替えるために列ヘッダをクリックしたときに呼び出されるコールバック関数へのポインタです。DataGrid 内部の dataProvider のエレメントを並べ替えるために、この関数が dataProvider から複数回呼び出されます。コールバック関数のシグネチャは次のとおりです。

mySortCompareFunction(obj1 :Object, obj2 :Object, columnIndex :Number) :Number

obj1 - 比較するデータエレメント
obj2 - obj1 と比較するもう一つのデータエレメント
columnIndex - 並べ替えの対象となる列番号の 0 から始まるインデックス

この関数からは、オブジェクトの比較結果に基づいて次の値を返す必要があります。
その並べ替え順で obj1 が前、obj2 が後になる場合は -1
obj1 = obj2 の場合は 0
その並べ替え順で obj2 が前、obj1 が後になる場合は 1

次のサンプル MXML の DataGrid では、sortCompareFunction プロパティに sortGrid という関数を設定しています。

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" width="850" height="800"> <mx:Script> <![CDATA[ var phoneData = [ {Name:"Bob", Department:"Sales", Extension:"x2345", Pay:"$32000"}, {Name:"Sue", Department:"Marketing", Extension:"x5432", Pay:"$38000"}, {Name:"Fred", Department:"Engineering", Extension:"x1122", Pay:"$52000"}, {Name:"Betty", Department:"Sales", Extension:"x8854", Pay:"$36000"}, {Name:"Steve", Department:"Marketing", Extension:"x2389", Pay:"$42000"}, {Name:"Marsha", Department:"Engineering", Extension:"x9964", Pay:"$65000"} ]; function sortGrid(a, b, index) { var result; var field; // 列名にはデータグリッドから直接にアクセスできます。 /* var field = sampleGrid.columns[index].columnName; var i1 = a[field]; var i2 = b[field]; */ // または、dataProvider 配列から列名を取得することもできます。 switch (index) { case 0: field = "Name"; var i1 = a[field]; var i2 = b[field]; break; case 1: field = "Department"; var i1 = a[field]; var i2 = b[field]; break; case 2:// 先頭の 'x' は無視 field = "Extension"; var i1 = a[field].slice(1); var i2 = b[field].slice(1); break; case 3:// 先頭の $ は無視 field = "Pay"; var i1 = a[field].slice(1); var i2 = b[field].slice(1); break; } // さまざまな比較をここで実行できます。この例では単純な比較を実行します。 // たとえば、Extension フィールドに基づいて特殊な比較をすることも可能です。 var i1 = Number(a.slice(1)); var i2 = Number(b.slice(1)); if (i1 == i2) result = 0; else if (i1 < i2) result = -1; else result = 1; return result; } ]]> </mx:Script> <mx:DataGrid id="sampleGrid" width="400" height="200" dataProvider="{phoneData}" > <mx:columns> <mx:Array> <mx:DataGridColumn columnName="Name" headerText="Sales Rep" /> <mx:DataGridColumn columnName="Department" headerText="Dept" textAlign="center"/> <mx:DataGridColumn columnName="Extension" headerText="Ext" textAlign="right" sortCompareFunction="sortGrid" /> <mx:DataGridColumn columnName="Pay" headerText="Pay" textAlign="right" /> </mx:Array> </mx:columns> </mx:DataGrid> </mx:Application>

現在のバージョン:
Flex 4
アップデートの入手