< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
前幾天發表了 将FlashVars寫在JS函數中,實作與背景的實時變量更新,但是僅支援 IE,随後與 Luckyer 進行了交流,發現用 SetVariable 可以很友善的實作多浏覽器相容。舉例如下。
html 頁中的 JavaScript 函數:
function GetSwfUrl()
{
var pics1 = parseInt(Math.random()*5)+1;
var pics2 = parseInt(Math.random()*5)+1;
document.my_swfId.SetVariable("pic01Num", pics1);
document.my_swfId.SetVariable("pic02Num", pics2);
}
說明:pic01Num 和 pic02Num 為 Flash 中定義的變量,以上函數将 JS 變量 pics1 和 pics1 分别指派予 Flash 變量 pic01Num 和 pic02Num 。my_swfId 為 html 頁中 swf 的 id .
***************
在 Flash 中與 JS 的通信可以用傳統的 getURL,Flash8 以後,可以用 ExternalInterface 。ExternalInterface 在功能上與 fscommand()、CallFrame() 和 CallLabel() 方法相似,但它更靈活、更通用。推薦對 JavaScript 和 ActionScript 之間的通訊使用 ExternalInterface 。
getURL調用JS:
getURL("javascript:GetSwfUrl()");
ExternalInterface調用JS:
import flash.external.ExternalInterface;//導入 ExternalInterface 類
ExternalInterface.call("GetSwfUrl()");
注意:如果要使用 ExternalInterface,目前幀必需要有 import flash.external.ExternalInterface; 或者 import flash.external.*;
調用方法:
例:
flash.external.ExternalInterface.call("menu0", null);
這樣會調用js中的menu0的方法
<a href="http://enetcorner.blog.163.com/tag/javascript%26%2347%3Bajax%E4%B8%93%E6%A0%8F/feeds">#javascript/ajax專欄</a>
本文轉自 netcorner 部落格園部落格,原文連結: http://www.cnblogs.com/netcorner/archive/2010/04/29/2912001.html ,如需轉載請自行聯系原作者