В примере ниже показано, как добавлять свойства, указывающие на глобальный объект окна HTML-страницы:
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;
}
HTML-содержимое (в файле test.html), загруженное в объект HTMLLoader в предыдущем примере, имеет доступ к свойству
foo
и методу
helloFromJS()
, которые определены в родительском SWF-файле:
<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
, будут иметь доступ к добавляемым объектам.