使用ActionScript单击AIR中的HTML元素

时间:2011-12-21 14:17:27

标签: html flex actionscript air mouseevent

我正在尝试在AIR应用程序中为HTML组件调度MouseEvent。这样我想用ActionScript代码模拟HTML元素的点击。这是我的AIR应用程序代码:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[
            private function clickHTML(event:MouseEvent):void {
                var e:MouseEvent = new MouseEvent(MouseEvent.CLICK,true,false,10,10);
                html.dispatchEvent(e);
            }
        ]]>
    </fx:Script>

    <s:Button label="Click HTML" x="10" y="10" click="clickHTML(event)"/>

    <mx:HTML id="html" x="10" y="50" width="100" height="100"
             location="page.html" click="trace('html was clicked')"/></s:WindowedApplication>

以下是page.html的代码:

<html>
<body onClick="alert('Clicked!')" bgcolor="grey">
Page loaded
</body>
</html>

当您单独单击HTML元素时,会有一个警报和MouseEvent,但是当使用脚本调度事件时,只有MouseEvent。

如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

您需要直接调用JavaScript函数才能使您的html内容做一些事情。 检查这个arcticle:

Accessing HTML DOM and JavaScript objects from ActionScript