当前位置:  开发笔记 > 编程语言 > 正文

在Flash中使用ExternalInterface

如何解决《在Flash中使用ExternalInterface》经验,为你挑选了1个好方法。

我正在尝试编辑一些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(即错误检查等),在此先感谢...



1> Johan Öbrink..:

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!");

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有