如何使Flash CS3,ActionScript将事件发送到JavaScript?

如何使Flash CS3,ActionScript将事件发送到JavaScript?

How can I make flash cs3, actionscript send events to javascript?

我正在使用Flash在网站上播放.flv movieclip,但是我希望在开始加载,开始播放并结束播放时,.swf发送触发我的JavaScript中的事件。

使用ActionScript 3.0在Flash CS3中做到这一点的最佳方法是什么?


您需要在HTML中使用" allowScriptAccess" Flash变量。您可能要使用" sameDomain"作为类型。请注意,如果您跨域访问,则还需要在服务器上托管一个名为" crossdomain.xml"的特殊文件,该文件可启用此类脚本编写(Flash Player将对此进行检查。有关更多信息,请访问http://kb.adobe。 com / selfservice / viewContent.do?externalId = tn_14213&sliceId = 2

通话很简单。 :-)在Flash代码中,您将使用ExternalInterface进行调用,如下所示:

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001655.html

简短版:您说

ExternalInterface.call("javascriptFunction","argument")


常用的方法是使用ExternalInterface类,您可以使用该类来调用JavaScript方法。

首先定义您的JavaScript方法,例如:

1
2
3
4
5
<script language="JavaScript">
    function startsPlaying()
    {
        // do something when the FLV starts playing
    }

然后修改您的ActionScript以在适当的时候调用JavaScript方法:

1
2
// inform JavaScript that the FLV has started playing
ExternalInterface.call("startsPlaying");

有关更多信息,请参见相关的Flash CS3文档。


如果您不想加载

1
import flash.external.*;

所以你也可以做一个

1
getUrl("javascript:startsPlaying();");


推荐阅读