ExternalInterFaceを用いると、FlexをラップしているHTMLに記述したJavaScriptとの相互の呼び出しが可能になります。
以下は、FlexからJavaScriptを呼び出すサンプルです。テキストボックスに何か入力し、ボタンを押してください(注意:JavaScriptを使用しているため、Webブラウザによってはうまく動作しない場合があります)。
サンプル4 |
Flex2JSSample.mxml |
<?xml version="1.0" encoding="utf-8"?> |
ExternalInterfaceの静的メソッドのcall()の、第1引数に実行したいJavaScript上で定義した関数名を、第2引数にJavaScriptに渡す引数を配列で指定します。
ラップするHTMLに以下のコードを記述します。関数内でreturnを使えば、さらにFlexに値を返すこともできます。
Flex2JSSample.html |
…(略)… |
次に、JavaScriptからFlexの関数を実行するサンプルです。テキストボックスに何か入力し、ボタンを押してください(注意:JavaScriptを使用しているため、Webブラウザによってはうまく動作しない場合があります)。
JS2FlexSample.mxml |
<?xml version="1.0" encoding="utf-8"?> |
ExternalInterfaceのaddCallback()というメソッドを呼びます。第1引数には、JavaScript側から呼び出すための関数名、第2引数には実際に実行される関数を指定します。
ラップするHTML側に以下のようなコードを挿入します。HTML上に埋め込まれるSWFのIDに対して、Flex側で定義した関数名を関数として呼び出します。引数を渡すこともできます。
JS2FlexSample.html |
<form name="form"> |
全6回にわたってFlexの特徴的な機能について解説を行ってきましたが、いかがだったでしょうか?
サンプルは比較的シンプルなものしか紹介できませんでしたが、どの内容もFlexアプリケーションの実開発で必ず必要になるはずです。「Flexでこんなこともできるんだ!」「Flexを使えばこんなことが可能かもしれない……!」といった驚きやひらめきを得るための助けになれば幸いです。
成瀬 勉(なるせ つとむ)
クラスメソッド株式会社 エンタープライズサービス部門アーキテクト
Macromedia FLASH MX 2004 Developer認定技術者
FlashエンジニアとしてWeb製作を経たのちWebアプリケーション開発に携わる。FlexやWPFなどのRIA開発および技術調査を日々行っている。クラスメソッド株式会社での主な開発実績は、旭化成の電子ファイリングシステム、ひまわり証券のオンライントレードシステム、ベルシステム24の営業支援システムなど。
ブログ(C:\narun)も更新中。
FlexやAIRの開発依頼や転職希望の方はコチラ。最近は会社説明会やセミナーもやっています。
Copyright © ITmedia, Inc. All Rights Reserved.