Отправка событий из веб-набора для использования в Adobe AIR - PullRequest
0 голосов
/ 08 апреля 2009

В моем приложении AIR есть HTML-компонент webkit, и я хотел бы иметь возможность отвечать на такие события, как onclick и ondoubleclick, сгенерированные из HTML-кода в компоненте webkit. Есть ли способ сделать это?

1 Ответ

1 голос
/ 08 апреля 2009

Да, хотя мне понадобилось немного времени, чтобы найти его.

Это должно послужить хорошей отправной точкой: http://livedocs.adobe.com/flex/3/html/help.html?content=ProgrammingHTMLAndJavaScript_04.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>
...