Adobe Flex 3 ヘルプ

テンプレートのカスタマイズ

Web 層コンパイラが MXML ファイルをコンパイルして SWF ファイルを生成する際、SWF ファイルを埋め込む HTML ラッパーも生成されます。ブラウザは最初に、SWF ファイルを埋め込むラッパーをロードします。このラッパーは、Web 層コンパイラインストールに含まれているテンプレートから生成されます。

テンプレートファイルは module_install_dir/templates フォルダにあります。デフォルトのテンプレートは default.html です。

template プロパティを使用して、テンプレートの場所を compiler.conf 設定ファイルで指定します。例えば、次のように指定します。

template=default.html

compiler.conf ファイルの編集の詳細については、Web 層コンパイラの設定を参照してください。

テンプレートでは、各種のトークンがプレースホルダとして使用され、最終的な出力を生成するときにコンパイラによって置き換えられます。例えば、トークン ${swf} は MXML ファイル名(ただし拡張子部分は省略)で置き換えられます。

テンプレートをカスタマイズすることもできますが、各種のルールに従う必要があります。新しいテンプレートは、以下の規則を満たしている必要があります。

  • *.html ファイルである
  • module_install_dir/templates ディレクトリにある
  • 少なくとも、${swf} トークンが含まれている。このトークンを使用して、movie パラメータの値を <object> タグに定義し、src 属性の値を <embed> タグに定義します。
  • 外部スクリプトまたは CSS ファイルを使用しない。例えば、テンプレート内では、次のようなコードを使用することはできません。
    <script src="mysource.js"></script>
    
    

テンプレートに関する制限事項

Web 層コンパイラは運用環境での使用を目的としていません。ラッパーは次の機能をサポートしていません。

  • 履歴管理またはディープリンク
  • プレーヤーの検出と展開
  • 高速インストール

さらに、テンプレートは、ラッパーの <object> および <embed> の各タグのクエリ文字列パラメータを flashVars 変数に変換しません。実行時データを flashVars 変数として渡したい場合、ラッパー内にハードコーディングするか、別の方法を使用してラッパーの <object> および <embed> の各タグに値を挿入する必要があります。

さらに、別のスクリプトファイルまたは外部 CSS ファイルをテンプレートに含めることはできません。テンプレートは、Flex アプリケーションが埋め込まれる、統合された 1 つのファイルである必要があります。JavaScript や別のクライアントサイドコードを含むこともできます。

Internet Explorer バージョン 6 以降では、Flex アプリケーションを実際に使用する前に、ブラウザウィンドウ内の任意の場所をクリックする必要があります。コントロールをアクティブにするために、スペースバーまたは Enter キーを押すように求められることもあります。これは、Web 層コンパイラによって返されるラッパーは、SWF ファイルを埋め込む外部 JavaScript ファイルを使用しないからです。外部スクリプトファイルを使用して SWF ファイルを埋め込む HTML ラッパーは、このようには動作しません。Web 層コンパイラで使用されるテンプレートラッパーでは外部スクリプトを使用できないため、この動作は変更できません。

HTML ラッパーの詳細については、ラッパーの作成を参照してください。

テンプレートのトークンについて

次の表では、Web 層コンパイラテンプレートを使用できるトークンについて説明します。

トークン

説明

${application}

ホスト環境(Web ブラウザなど)で SWF ファイルを指定し、VBScript や JavaScript などのスクリプト言語を使用してラッパーから参照できるようにします。

このトークンは、<object> タグの id プロパティと、<embed> タグの name プロパティによって使用されます。

${bgcolor}

アプリケーションの背景色を指定します。このプロパティを使用して、ソース MXML ファイルで指定された背景色を上書きできます。このプロパティは、HTML ページの背景色には影響しません。

bgcolor の有効な形式は、#RRGGBB、16 進数または RGB 値です。

アプリケーションコンテナのスタイルでは、イメージがデフォルトの背景イメージとして使用されます。このイメージは指定した背景色の設定を覆い隠します。このため、{$bgcolor} トークンの値を正常に表示するには、アプリケーションコンテナの backgroundImage スタイルプロパティをクリアする必要があります。これは、次の例のように、MXML ソースファイルの値に空白文字を設定して行います。

<mx:Style> Application { backgroundImage: " "; } </mx:Style>
$(height)

アプリケーションの高さを定義します。デフォルト値は 100%です。compiler.conf ファイルでデフォルト値を設定します。MXML ファイルでこの値が設定されている場合、Web 層コンパイラはその値を使用します。

このトークンは、<object> タグと <embed> タグのそれぞれの height プロパティの値を使用します。

$(swf)

拡張子部分を除く MXML ファイルの名前を定義します。例えば、MXML ファイルが Main.mxml という名前である場合、Web 層コンパイラはこのトークンのある場所に Main を挿入します。

このトークンは、<object> タグの movie パラメータと、<embed> タグの src プロパティによって使用されます。

$(width)

アプリケーションの幅を定義します。デフォルト値は 100%です。compiler.conf ファイルでデフォルト値を設定します。MXML ファイルでこの値が設定されている場合、Web 層コンパイラはその値を使用します。

このトークンは、<object> タグと <embed> タグのそれぞれの width プロパティの値を使用します。

 

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