モジュールは、アプリケーションファイルと同様、クラスです。モジュールは、ActionScript か、MXML タグを使用して Flex クラスを拡張することにより作成できます。MXML および ActionScript でモジュールを作成できます。
MXML でモジュールを作成するには、ルートタグが <mx:Module> のファイルを作成することにより、mx.modules.Module クラスを拡張します。タグ内に、そのモジュール内で使用されている名前空間が追加されていることを確認してください。ファイルの先頭には、次のように XML 型宣言タグを指定する必要もあります。
<?xml version="1.0"?>
次の例は、Chart コントロールを含むモジュールです。
<?xml version="1.0"?>
<!-- modules/ColumnChartModule.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" >
<mx:Script><![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"Jan", Profit:2000, Expenses:1500},
{Month:"Feb", Profit:1000, Expenses:200},
{Month:"Mar", Profit:1500, Expenses:500}
]);
]]></mx:Script>
<mx:ColumnChart id="myChart" dataProvider="{expenses}">
<mx:horizontalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:horizontalAxis>
<mx:series>
<mx:ColumnSeries
xField="Month"
yField="Profit"
displayName="Profit"
/>
<mx:ColumnSeries
xField="Month"
yField="Expenses"
displayName="Expenses"
/>
</mx:series>
</mx:ColumnChart>
<mx:Legend dataProvider="{myChart}"/>
</mx:Module>
モジュールを作成したら、アプリケーションの場合と同じように、モジュールをコンパイルします。モジュールのコンパイルの詳細については、モジュールのコンパイルを参照してください。
モジュールをコンパイルしたら、アプリケーションまたは別のモジュールにロードできます。通常は、次のいずれかの手法を使用して MXML ベースのモジュールをロードします。
ActionScript でモジュールを作成するには、mx.modules.Module クラスまたは mx.modules.ModuleBase クラスを拡張するファイルを作成します。
Module クラスを拡張することは、MXML ファイルで <mx:Module> タグを使用するのと同じです。モジュールがフレームワークとやり取りする場合(通常は、モジュールが表示リストにオブジェクトを追加するか、可視オブジェクトを操作することを意味します)は、このクラスを拡張する必要があります。
Module クラスを拡張する ActionScript クラスの例を確認するには、<mx:Module> のルートタグで MXML ファイルを作成します。このファイルをコンパイルするときには、keep-generated-actionscript コンパイラプロパティの値を true に設定します。Flex コンパイラによって、生成された ActionScript クラスが generated という名前のディレクトリに格納されます。この生成されたクラスには、通常は理解できないコードが含まれていることがわかります。したがって、Module クラスを拡張する ActionScript ベースのモジュールを記述することはお勧めできません。その代わりに、MXML を使用してそれらのモジュールを記述してください。
モジュールがフレームワークのコードを含まない場合は、ModuleBase を拡張するクラスを作成できます。ModuleBase クラスを使用する場合、モジュールにはフレームワーククラスの依存関係が含まれないので、Module クラスに基づくモジュールを使用する場合よりもモジュールは通常小さくなります。
次の例では、フレームワークのコードを含まないので ModuleBase クラスを拡張可能な、単純なモジュールを作成しています。
// modules/asmodules/SimpleModule.as
package {
import mx.modules.ModuleBase;
public class SimpleModule extends ModuleBase {
public function SimpleModule() {
trace("SimpleModule created");
}
public function computeAnswer(a:Number, b:Number):Number {
return a + b;
}
}
}
ActionScript モジュールで computeAnswer() メソッドを呼び出すには、親アプリケーションからのモジュールへのアクセスにあるいずれかの手法を使用できます。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート