0

MXML ファイルに、基本クラスに相当する MXML に移動したい共通コードがいくつかあり、そこからさまざまな MXML コンポーネントをサブクラス化します。MXML でこれを行うための構文は何ですか?

4

1 に答える 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 に答える