在Flash中使用ExternalInterface

我正在尝试编辑一些flash以进行外部javascript函数调用,但没有成功.这是我的actionscript 2.0代码

//testing external .js calls

import flash.external.ExternalInterface;

//attempting to make external js call

ExternalInterface.call("createPlaylist","It's my Life!");

这是我的javascript;

function createPlaylist(mess){
  alert("called createPlaylist: " + mess);
}

我见过很多例子,我对使用ExternalInterface.addCallback感到困惑.我不需要javascript将任何内容返回给flash,所以这是必要的吗?

无论出于何种原因,我都看不到警报.有没有人在我的代码中看到任何问题?是否有一些我没有的ExternalInterface库?此外,什么是使用ExternalInterface的最佳方式(即;错误检查等)在此先感谢…

解决方法

ExternalInterface.addCallback用于使javascript能够调用您的Flash应用程序.例如,如果您想要一个启动/停止视频的HTML按钮,您只需为命名方法添加回调,而您的js可以调用[FlashObject] .callback方法名称.

我想说在应用程序中添加ExternalInterface方法的最佳方法是在应用程序中为每个交互案例设置一个负责JS通信的类.例如:

public class ExternalVideoControl {

    private var video:MediaDisplay;

    public function ExternalVideoControl(video:MediaDisplay) {
        //ExternalInterface.addCallback  - one callback for each method you want to expose,pointing to a method within this class;
        //add listeners on the video player and point them to methods in this class,for example onProgress
    }
    public function playVideo():void {
        //play the video on the mediaDisplay
    }
    private function onProgress(event:ProgressEvent):void {
        //ExternalInterface.call - report progress back to javascript
    }
}

要更直接地测试ExternalInterface,请尝试调用

ExternalInterface.call("alert","Hello World!");

相关文章

Chrome 无法显示使用插件的内容 Chrome 不再支持很多插件。不过网站创建者已经通过更安全的方式,将多数...
Flash 开发环境搭建和文字滚动效果实例 一、Flash 开发环境搭建 Flash发布的时候可以将资源(即将库中的...
方法一: 1、选择合适的yum源http://get.adobe.com/cn/flashplayer/进入此网址选择 “YUM,适用于Linux...
在做web开发中可能会遇到flash遮挡页面中元素的情况,无论怎么设置flash容器和层的深度(z-index)也无济...
chrome 45以上不自动播放"非必要"flash的一种可能解决方案chrome 45以上flash被拦截...
透过现象看本质 首先是个转场特效问题。 其实我早想到做法了,只是当时还没实践。增加混合(BlendMode....