加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash AS2.0和JavaScript / jQuery(ExternalInterface)通信

发布时间:2020-12-15 07:26:43 所属栏目:百科 来源:网络整理
导读:我试图使用JS将数据发送到带有ExternalInterface的Flash AS2.0音乐播放器,除了我找不到有关ExternalInterface的好教程或指南.我希望能够通过单击 JavaScript链接更改播放器中的当前歌曲,并在页面/窗口加载时不点击,播放默认歌曲. 我不需要在闪存等中加载声音
我试图使用JS将数据发送到带有ExternalInterface的Flash AS2.0音乐播放器,除了我找不到有关ExternalInterface的好教程或指南.我希望能够通过单击 JavaScript链接更改播放器中的当前歌曲,并在页面/窗口加载时不点击,播放默认歌曲.

我不需要在闪存等中加载声音的超级复杂的答案,我只是在让JS向Flash发送任何内容时遇到很多困难,当我开始工作时 – 我是否需要将一些if / else放入闪存以确定链接是否已被点击?

谢谢

编辑继承人现在的代码:

AS 2.0

import flash.external.ExternalInterface;

ExternalInterface.addCallback('loadSong',null,flashFunction);

function flashFunction (val) {
    extra = val;
}

JavaScript的

var flashObj = document.getElementById('VSPLAYER');

function loadSong(val) {
    return val
}

HTML

<a href="javascript:loadSong('2')">Play song 2</a>

<object id="VSPLAYER" type="application/x-shockwave-flash" data="vs_player.swf" width="280" height="90">
<param name="movie" value="vs_player.swf" />
<param name="allowscriptaccess" value="always" />
</object>

解决方法

在你的Flash中,最好是在第一帧中,把它放在:

ExternalInterface.addCallback('callFlashFunction',yourFlashFunction);

function yourFlashFunction (arg1,arg2) { ... }

在您的Javascript中,您可以通过以下方式调用它:

var flashObj = document.getElementById ('FlashObjID');
flashObj.callFlashFunction (arg1,arg2);

如果您的SWF位于不同的域中,请记住允许通过以下方式访问脚本:

<object id="FlashObjID"> ... <param name="allowscriptaccess" value="always" /> ... </object>

更新(基于您的HTML):

<a href="#" onclick="return jsLoadSong('2')">Play song 2</a>

<object id="VSPLAYER" type="application/x-shockwave-flash" data="vs_player.swf" width="280" height="90">
    <param name="movie" value="vs_player.swf" />
    <param name="allowscriptaccess" value="always" />
</object>

<script type="text/javascript">
    var flashObj = document.getElementById ('VSPLAYER');
    function jsLoadSong (val)
    {
        flashObj.loadSong (val);
        return false; // to prevent default link action
    }
</script>

我试图澄清名称,以显示哪些是在Javascript中,哪些是与Flash绑定的.另请注意,在调用定义flashObj之前,您需要等到DOM加载完毕.这里,< script>标签位于< object>之后,因此它可以正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读