是否可以从javascript向flash对象发送击键和鼠标移动?

是否可以从javascript向flash对象发送击键和鼠标移动?,flash,Flash,是否可以从javascript向flash对象发送击键和鼠标移动以进行测试?请参阅文档(尤其是getObjectById和Embeddeswf)和 在ActionScript中 package { import flash.external.* public class MySprite extends Sprite { function MySprite():void { ExternalInterface.addCallback("hand

是否可以从javascript向flash对象发送击键和鼠标移动以进行测试?

请参阅文档(尤其是getObjectById和Embeddeswf)和

在ActionScript中

package
{
    import flash.external.*

    public class MySprite extends Sprite {
    function MySprite():void 
    {
        ExternalInterface.addCallback("handleEventInAS", handleEventInAS);
    }

    function handleEventInAS(e:Object) 
    { 
       trace("in handleEventInAS with e="+e);
    }
}
然后在HTML/JS中

 <script src="swfobject.js"></script>
 <script>

     swfobject.embedSWF("myflash.swf","myflashid","100","100",9);
     var flashobj = swfobject.getObjectById("myflashid");
     window.onmousemove = connectjs2as;

     function connectjs2as(e)
     {
        if(flashobj)
            flashobj.handleEventInAS(e);
     }
 </script>

swfobject.embeddeswf(“myflash.swf”、“myflashid”、“100”、“100”、9);
var flashobj=swfobject.getObjectById(“myflashid”);
window.onmousemove=connectjs2as;
函数连接JS2AS(e)
{
if(flashobj)
flashobj.handleEventInAS(e);
}

注意:需要FlashPlayer 9,这就是为什么我在embedSWF()调用中添加了“9”。

谢谢,尽管我想知道在没有flash源代码的情况下是否可以:)为此,您需要两件事。1) 由于跨域策略问题,swf从同一主机提供服务,2)swf必须进行ExternalInterface.addCallback调用,并且您需要知道swf用于命名回调的名称(addCallback的第一个参数)。对于第二部分,在中可能会对swf进行反编译,以获取ExternalInterface添加的回调,尽管我以前没有尝试过,所以不确定。