<script>
タグを使用してページに読み込まれた SWF ファイルの ActionScript から HTML ページのオブジェクトにアクセスするには、
window
や
document
などの JavaScript オブジェクトへの参照を、ActionScript コードに定義された関数に渡します。JavaScript オブジェクト(または渡された参照からアクセスできる他のオブジェクト)にアクセスする関数内の参照を使用します。
例えば、次のような HTML ページがあるとします。
<html>
<script src="ASLibrary.swf" type="application/x-shockwave-flash"></script>
<script>
num = 254;
function getStatus() {
return "OK.";
}
function runASFunction(window){
var obj = new runtime.ASClass();
obj.accessDOM(window);
}
</script>
<body onload="runASFunction">
<p id="p1">Body text.</p>
</body>
</html>
この簡単な HTML ページには、
num
という名前の JavaScript 変数と
getStatus()
という名前の JavaScript 関数があります。2 つともページの
window
オブジェクトのプロパティです。また、
window.document
オブジェクトには名前付きの P エレメント(ID は
p1
)があります。
ページは、ASClass というクラスを含む ActionScript ファイル「ASLibrary.swf」を読み込みます。ASClass には、JavaScript オブジェクトの値を単純に追跡する
accessDOM()
という名前の関数が定義されています。
accessDOM()
メソッドは、JavaScript Window オブジェクトをパラメーターとして使用します。次の定義に示すように、この Window 参照を使用すると、変数、関数および DOM エレメントなど、ページ内の他のオブジェクトにアクセスできます。
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
読み込まれた ActionScript クラスから HTML ページのプロパティを取得することも設定することもできます。例えば、次の関数はページ上の
p1
エレメントのコンテンツを設定し、ページ上の
foo
JavaScript 変数の値を設定します。
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;