Adobe Flex 3 ヘルプ

アセットの埋め込みについて

アセットを埋め込む場合は、アセットをアプリケーションの SWF ファイルにコンパイルします。アセットを埋め込む利点は、埋め込まれたアセットが SWF ファイル内にあるため、実行時に離れた場所からアセットをロードするよりも短時間でアクセスできることです。アセットを埋め込むことの短所は、実行時にアセットをロードする場合と比べ SWF ファイルのサイズが大きくなることです。

アセット埋め込みの例

最も一般的な埋め込み方法は、MXML タグ定義内で @Embed() ディレクティブを使用して、Flex コントロールにイメージを読み込む方法です。例えば、多くのコントロールは、アプリケーションへの埋め込みが可能なアイコンまたはスキンをサポートします。Button コントロールでは、ラベルテキストや、オプションのアイコンイメージを指定できます。次の例を参照してください。

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

    <mx:Button label="Icon Button" icon="@Embed(source='logo.gif')"/>
</mx:Application>

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

もう 1 つの埋め込み方法は、[Embed] メタデータタグを使用して、埋め込みイメージを変数に関連付ける方法です。この方法では、次の例に示すように、アプリケーション内の複数の場所から埋め込まれたイメージを参照できます。

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

    <mx:Script>
        <![CDATA[
            [Embed(source="logo.gif")]
            [Bindable]
            public var imgCls:Class;
        ]]>
    </mx:Script> 

    <mx:Button label="Icon Button 1" icon="{imgCls}"/>
    <mx:Button label="Icon Button 2" icon="{imgCls}"/>
</mx:Application>

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

スタイルプロパティの場合は、Embed() ディレクティブを使用して、スタイルシート定義の一部としてアセットを埋め込むことができます。スタイルプロパティに対する一般的な使用方法の 1 つは、コンポーネントのスキンを設定する方法です。次の例に示すように、overSkinupSkin、および downSkin のスタイルプロパティを使用することにより、Button コントロールのスキンを設定できます。

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

    <mx:Style>  
        .myCustomButton {
            overSkin:Embed(source="overIconImage.gif");
            upSkin:Embed(source="upIconImage.gif");
            downSkin:Embed(source="downIconImage.gif");
        }
    </mx:Style>

    <mx:Button label="Icon Button Style Def" styleName="myCustomButton"/>
</mx:Application>

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

注意: スタイルシートの等号(=)は Flex 拡張子です。この拡張子は、一部の CSS プロセッサではサポートされない可能性があります。サポートされていないことが判明した場合は、Embed(filename) のシンタックスを使用してください。

アセットへの実行時のアクセス

アセットを埋め込むのではなく、実行時にアセットをロードすることもできます。SWF ファイルが実行されるローカルなファイルシステムからアセットをロードすることも、ネットワーク上の HTTP 要求を通じて(通常の方法)、リモートアセットにアクセスすることもできます。

イメージを埋め込んだ場合、埋め込まれたイメージは Flex SWF ファイルの一部となるので、ロードは直接的に行われます。ただし、アプリケーションのサイズが増えるので、アプリケーションの初期化プロセスは遅くなります。また、埋め込まれたアセットの場合、アセットに変更を加えるたびにアプリケーションを再コンパイルする必要があります。

実行時にアセットをロードした場合、対象のアセットは、Flex アプリケーションの一部としてコンパイルされるのではなく、独立したファイルとして Web サーバーなどに置かれます。アセットの参照により、アプリケーションの初期ロード時間に追加のオーバーヘッドが生じることはありません。ただし、Adobe® Flash® Player または Adobe® AIR™ でアセットを使用し、ロードするときに遅延が生じる場合があります。アセットは、Flex アプリケーションとは独立しているため、アセットの名前さえ同じであれば、修正を加えたとしても再コンパイルの必要はありません。

実行時にアセットをロードする例については、Image コントロールおよびSWFLoader コントロールを参照してください。

セキュリティのため、Flash Player のデフォルトでは、一部のタイプのリモートデータ(SWF ファイルなど)については、実行時にアプリケーションの提供ドメイン以外のドメインからアクセスすることが許可されません。したがって、データをホストするサーバーがアプリケーションをホストしているサーバーと同じドメインにあるか、またはサーバーが crossdomain.xml ファイルを定義する必要があります。crossdomain.xml ファイルは XML ファイルで、サーバーのデータとドキュメントをどのドメインの SWF ファイルが利用できるかを示します。特定のドメインを指定することも、すべてのドメインを指定することもできます。アプリケーションのセキュリティの詳細については、『』のFlex へのセキュリティの適用を参照してください。

サポートされているファイルタイプ

Flex アプリケーションには、次のタイプのファイルを埋め込むことができます。

ファイルタイプ

ファイル形式

MIME タイプ

説明と用例

イメージ

GIF

image/gif

JPEG、GIF および PNG イメージの埋め込み

.JPG、.JPEG

image/jpeg

PNG

image/png

SVG

image/svg

image/svg-xml

SVG イメージの埋め込み

Flash

SWF

application/x-shockwave-flash

SWF ファイルの埋め込み

SWF ファイルに保存されたシンボル

オーディオ

MP3

audio/mpeg

サウンドの埋め込み

フォント

TTF(TrueType)

application/x-font-truetype

TBD

FON(システムフォント)

application/x-font

それ以外のタイプ

 

application/octet-stream

他のすべてのファイル種類の埋め込み

 

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