AS和JS通訊,Flash和Html通訊

1、使用 ExternalInterface apihtml

1.as調用js,as給js發送參數數據api

as代碼:app

// as向js發出 方法名+參數 ExternalInterface.call(functionName:String, ...parameters:*) 方法名是字符串,參數能夠是任何數據類型  
if(ExternalInterface.available) 
{ 
ExternalInterface.call(
"onSetDataToJs", 「as經過ExternalInterface.call方法向js傳遞參數」);
}

js代碼:函數

function onSetDataToJs(value)
{
   console.log("此方法被as調用:"+value);
}

 

2.js調用as代碼,js給as發送參數數據spa

js代碼:code

setDataToAs();
function setDataToAs()
{
    var flash =  getMovieName("sco_flash") // sco_flash是嵌入在html裏的flash的id
    flash.onJsToAs("js傳參給as");
}

//獲取此頁面加載FLASH對象名稱
function getMovieName(movieName)
 {
   if (window.document[movieName])
   {
     return window.document[movieName];
   }else if (navigator.appName.indexOf("Microsoft")==-1)
     {
      if (document.embeds && document.embeds[movieName])
          return document.embeds[movieName];
      }else{
          return document.getElementById(movieName);
   }
 };

as代碼:htm

// as監聽js發來的 方法名,而後經過回調函數接收參數  ExternalInterface.addCallback(functionName:String, closure:Function) 方法名是字符串,回調一個函數
if(ExternalInterface.available)
{
    ExternalInterface.addCallback("onJsToAs",onJsToAs);
}
function onJsToAs(str:*)
{
    trace(str);
}  

 

2、使用 fscommand api對象

1.as調用js,as給js發送參數數據blog

as代碼:字符串

// as向js發出 方法名+參數 fscommand(command:String, args:String="") 命令是字符串,參數也只能是字符串
fscommand("onSetDataToJs", 「as經過fscommand方法向js傳遞參數」);  

js代碼:

function onSetDataToJs(value)
{
   console.log("此方法被as調用:"+value);
}
相關文章
相關標籤/搜索