以下示例说明如何添加相关属性,将 ActionScript 对象引用到 HTML 页的全局 window 对象:
var html:HTMLLoader = new HTMLLoader();
var foo:String = "Hello from container SWF."
function helloFromJS(message:String):void {
trace("JavaScript says:", message);
}
var urlReq:URLRequest = new URLRequest("test.html");
html.addEventListener(Event.COMPLETE, loaded);
html.load(urlReq);
function loaded(e:Event):void{
html.window.foo = foo;
html.window.helloFromJS = helloFromJS;
}
上例中加载到 HTMLLoader 对象的 HTML 内容(位于名为 test.html 的文件中),可以访问父级 SWF 文件中定义的
foo
属性和
helloFromJS()
方法:
<html>
<script>
function alertFoo() {
alert(foo);
}
</script>
<body>
<button onClick="alertFoo()">
What is foo?
</button>
<p><button onClick="helloFromJS('Hi.')">
Call helloFromJS() function.
</button></p>
</body>
</html>
访问加载文档的 JavaScript 上下文时,可以使用
htmlDOMInitialize
事件按照适当的页面构造顺序尽早创建对象,以便页面中定义的所有脚本均能访问这些对象。如果等待
complete
事件,则只有在页面
load
事件之后运行的页面中的脚本才能访问所添加的对象。