カスタム検索

2009年1月27日火曜日

Air(Flex)か〜ら〜のHTMLか〜ら〜のJavascript

AirのHTMLタグから、パッケージに含んだファイル(とかローカルファイルとか)を読み込む方法



var file:File = new File("app:/html/index.html");
var src = new File(file.nativePath).url;
html.location=src;

<mx:HTML id="html" />


パッケージ内にあるJavaScriptは相対パスで読めます。
HTMLとinclude.jsが同じ場所にあるとすれば以下のように。

<script src="include.js"></script>


JavaScriptが全然別のドメインとかでもひっぱてきて使えちゃいますよ。

<script src="http://hoge.jp/outer.js"></script>

なんでJavaScriptのコアをどっかにおいておけばアプリ本体を更新せずにサーバのJSを置き換えて更新も出来ちゃう。

でもってAirからHTMLでロードした中のJavaScriptの実行方法
htmlのcompleteイベントからdomを取得出来るので、、、

private function loadCompleteHandler(e:Event):void {
dom=e.currentTarget.domWindow;
}
<mx:HTML id="html" location="{src}" width="100%" height="100%" complete="loadCompleteHandler(event)" />


domの直下にスクリプトがバインドされているので、それを実行すればオッケィ

html.functionName();

1 件のコメント:

tamata さんのコメント...

なるほど〜