MXML ファイルに、基本クラスに相当する MXML に移動したい共通コードがいくつかあり、そこからさまざまな MXML コンポーネントをサブクラス化します。MXML でこれを行うための構文は何ですか?
質問する
1757 次
1 に答える
4
MXML は ActionScript 生成言語と見なされます。Flex コンパイラの現在のバージョンは、MXML を ActionScript に変換します。
したがって、すべての意図と目的において、MXML クラスは ActionScript クラスと同じです。継承のために、MXML クラスは ActionScript クラスを拡張できます。これは、新しいアプリケーション ファイルを作成するたびに行います。MXML クラスは、別の MXML クラスを拡張することもできます。このアプローチは、ActionScript クラスの拡張と同じです。
まず、好きな方法で基本クラスを作成します。これは、グループを拡張するサンプル クラス構造です。
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
// shared ActionScript Code here
]]>
</fx:Script>
<!-- shared MXML code here -->
</s:Group>
そのファイルに BaseClass.mxml という名前を付けて、ディレクトリ com.flextras に配置したとします。前のクラスを拡張する新しいクラスは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<flextras:BaseClass xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:flextras="com.flextras.*" width="400" height="300">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</flextras:BaseClass>
Flash Builder では、Flash プロジェクト内で「新規 --> MXML コンポーネント」を実行するだけで、これは非常に簡単です。
于 2012-10-28T02:19:33.097 に答える