zoukankan      html  css  js  c++  java
  • flash与js交互

    当Flash置于HTML容器中时,经常会遇到Flash与JS的通信问题,例如:JS能否调用Flash中的变量、方法,Flash能否调用JS中的变量、方法等等。答案是肯定的。随着技术的不断发展,解决方案也是多种多样的。

    比如存在js端方法:
      function JsFun(){
        alert(123);
      }

    一、Flash调用js端方法:
    1)方法一、getURL调用JS:  
      getURL("javascript:JsFun()");
      //带参数的JS方法:getURL("javascript:JsFun('a',1,true)");

    2)方法二、ExternalInterface调用JS: 
      import flash.external.ExternalInterface;//导入 ExternalInterface 类   
      ExternalInterface.call("JsFun"); 
      //带参数的JS方法:ExternalInterface.call("JsFun",'a',1,true);
    注意:如果要使用 ExternalInterface,当前帧必需要有 import flash.external.ExternalInterface; 或者 import flash.external.*;

    二、js调用Flash方法:
    1)方法一、
    Flash端代码:
      import flash.external.*; //导入包
      ExternalInterface.addCallback("FlashFun",this,FlashFun); //将函数注册到容器列表
      function FlashFun(str:String){ //Flash内部函数
        lbl_Name.text = str; //lbl_Name是Flash端的文本标签
      }

    js端代码:
      function GetFlashObj(flashName){ //根据flash的name获取flash对象,也可以根据flash的id来获取document.getElementById(flashId);
        if(navigator.appName.indexOf('Microsoft')!=-1){
          return window[flashName];
        }else{
          return document[flashName];
        }
      }
      GetFlashObj('demo').FlashFun('Hello World!');

    2)方法二、
    js端给Flash端的变量赋值,在Flash端侦听变量的变化:
    js端代码:
      GetFlashObj('demo').SetVariable('status',1); //SetVariable(变量名,变量值);

    Flash端代码:
      var status=0;//变量名
      setInterval(function(){
        if(status==1)
          FlashFun();

      },1000);
      function FlashFun(){
        //
      }

  • 相关阅读:
    EC600S连接阿里云
    纪念首次使用vscode+platformio完成点灯全过程
    使用EC600S-CN实现短信收发功能
    基于stm32,通过更换数据存储扇区提升w25q128flash芯片使用寿命
    0.96寸OLED模块-简述如何修改OLED_ShowChar()函数达到修改显示字体大小的目的
    stm32定时器初始化后自动进入一次中断问题
    个人PSP升级作业
    第一个微信小项目
    自己设计大学排名-数据库实践
    自己的第一个网页
  • 原文地址:https://www.cnblogs.com/wxt2005/p/3179427.html
Copyright © 2011-2022 走看看