zoukankan      html  css  js  c++  java
  • [转]flash 与 js 通讯方法

     

    flash 中调用js 有两种方法,第一中是同getURL 这个方式来调用js,第二种是用 ExternalInterface.call( ).第一种是很常见的用法,我就说一下小明我是怎么用 ExternalInterface.call

       什么是 ExternalInterface?

       ExternalInterface类是外部api ,也就是actionscript 和 flashplayer 的容器之间实现直接通讯的应用程序编程接口 。在flash的帮助文档里是推荐用ExternalInterface来实现javascript 和 actionscript 之间通讯的。利用ExternalInterface可以调用html网页上任何的js 功能,传递参数并接受来自该调用的返回值。从html 上的js中调用flashplayer中的as 函数。

      1 flash 调用 js:

    flash部分---------------------------

    //应用命名空间;

    import flash.external.*;
    var greeting:String;//调用createButton 生成一个按钮
    var btn:MovieClip = createButton(100, 30, 0xCCCCCC);btn.onPress = function() {

    //调用js里的sayHello 函数并接受其返回值
    greeting = String(ExternalInterface.call("sayHello", "browser"));
    this.mcTxt.text = greeting; // >> Hi Flash.

    function createButton(Number, height:Number, color:Number):MovieClip {
    var depth:Number = this.getNextHighestDepth();
    var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
    var mcFmt:TextFormat;
    mc.beginFill(color);
    mc.lineTo(0, height);
    mc.lineTo(width, height);
    mc.lineTo(width, 0);
    mc.lineTo(0, 0);
    mcFmt = new TextFormat();
    mcFmt.align = "center";
    mcFmt.bold = true;
    mc.createTextField("mcTxt", depth, 0, 0, width, height);
    mc.mcTxt.text = "Call JS Function";
    mc.mcTxt.setTextFormat(mcFmt);
    return mc;


    ---------------flash结束js部分-------------------

    <script>
    function sayHello(name) {
    alert(">> Hello " + name + ".");
    return ">> Hi Flash.";

    </script>

    ---js结束2。js调用 flashflash 部分---

    import flash.external.*;
    //这个参数是说js里调用as里的函数名
    var methodName:String = "goHome";//这个是在该方法中被解析的对象,就是函数里的this 指向谁
    var instance:Object = null;//这个是as里的函数名,这个参数就是gohome这个在js里调用的函数名 在as里对应的函数名var method:Function = goTokb;var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method);
    var txtField:TextField = this.createTextField("txtField", this.getNextHighestDepth(), 0, 0, 200, 50);
    txtField.border = true;
    txtField.text = wasSuccessful.toString();
    function goTokb() {
    txtField.text = "http://10kb.net";
    getURL("http://www.10kb.net", "_self");

    ------------------------flash 结束js部分-----------------

    <form>
    <input type="button" onclick="callExternalInterface()" value="Call ExternalInterface" />
    </form>
    <script>
    function callExternalInterface() {
    thisMovie("externalInterfaceExample").goHome();

    function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName]

    else {
    return document[movieName]


    </script>

  • 相关阅读:
    个人学期总结
    201571030130/201571030124《小学四则运算练习软件需求说明》结对项目报告
    201571030124/201571030130《小学生四则运算练习软件》结对项目报
    201571030124 四则运算
    201571030124 初读《构建之法》(Build To Win)有感
    个人学期总结
    201571030130/201571030124《小学四则运算练习软件软件需求说明》结对项目报告
    201571030130/201571030124《小学生四则运算练习软件》结对项目报
    201571030130 小学生四则运算练习软件项目报告
    读《现代软件工程——构建之法》有感
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1265113.html
Copyright © 2011-2022 走看看