用法:
因為在Flash幫助中已詳細說明了Flash與JavaScript容器之間的通信過程,此處不贅述。現以在含有FLASH控制項的VS(VC)應用程式為例說明:
容器訪問Flash控制項:
A:flash代碼:
//導入
import flash.external.ExternalInterface;
//回調聲明
if (flash.external.ExternalInterface.available){
ExternalInterface.addCallback("flashDoSth", null, flashDoSth);
}
//回調定義
function flashDoSth(param:TYPE):TYPE{
//do sth here;
//return sth;
}
B:VS(VC)代碼:
在需要FLASH執行上述定義的函式代碼段,寫入
m_flash.CallFunction(strXML);
//說明:
m_flash即Flash控制項變數;
strXML即為容器傳向Flash的數據,為XML類型字元串,在JS網頁中,數據直接傳輸使用,但在控制項容器如VS(VC)中,容器與控制項數據傳方式為:數據(VS/VC)----XML數據---數據(Flash)。
一般的組織方式:
容器向Flash傳遞數據為字元串"STR",strXML應該寫為:
"<invoke name="flashDoSth" returntype="xml"><arguments><string>STR</string></arguments></invoke>"
容器向Flash傳遞數據為數字222,strXML應該寫為:
"<invoke name="flashDoSth" returntype="xml"><arguments><number>222</number></arguments></invoke>"
容器向Flash傳遞數據為布爾,strXML應該寫為(以下方式之一):
"<invoke name="flashDoSth" returntype="xml"><arguments><true/></arguments></invoke>"
"<invoke name="flashDoSth" returntype="xml"><arguments><false/></arguments></invoke>"
當然,以上這種寫法麻煩,現在網上有tinyxml,用起來很方便。可利用tynyxml封裝了一個類,用來VS(VC)向Flash傳遞數據或解析來自Flash的XML數據,包括稍複雜的數據,如數組(一維)、結構體等。大家如果經常用到數據傳輸,最好是封裝,不然太麻煩,且數據量太少。
Flash訪問容器:
A:flash代碼:
//導入
import flash.external.ExternalInterface;
//向VS(VC)提出調用請求:
if (flash.external.ExternalInterface.available){
if (String(ExternalInterface.call("itemType", 數據)) != "OK") {
//容器收到成功後,此處繼續其它處理
}
}
//說明:上述代碼中“數據”可以為Flash中任意數據類型,包括Object.
"itemType"用於在容器程式OnFlashCall..()中判別來自於Flash中不同的請求。
B:VS(VC)中代碼,同樣,容器中將收到的數據為xml格式,必須提取有效數據;
//添加以下事件回響
void OnFlashCall..(LPCTSTR request)
{
//解析request(xml數據字元串),獲得"itemType"及數據
//根據"itemType"分類,處理數據,數據處理成功{
m_examAdmin.SetReturnValue("<string>OK</string>");
}
}
關於call()方法,解析過程依然是利用訪問鏈式結構,獲得相應數據。
相關詞條
-
ExternalInterface
inin
-
《ACTIONSCRIPT 2.0編程入門經典》
《ACTIONSCRIPT 2.0編程入門經典》【名稱】《ACTIONSCRIPT 2.0編程入門經典》【定價】¥89.00【...
內容簡介 目錄介紹 參考資料 -
AGE FlashPacker
ExternalInterface,例如視窗拖動、保存檔案、設定滑鼠樣式等。 ...
簡介: 軟體特色: -
日本京立光源箱
簡介標準光源包括日本京立(ARROWIN)LB-3000(380) 日本京立光源箱 小型で低価格な輝度箱の決定版Light So...
簡介 LB-3000(380) LV-2001A / 2450DC -
大唐5733
大唐電信5733 是基於TD-HSDPA/GSM的數據上網卡,可在TD-HSDPA和EDGE GSM網路中自由切換,支持T...
-
精通Flex網路開發技術
內容簡介精通Flex網路開發技術《至理:精通Flex網路開發技術:整合ActionScript/JavScrript/Ajax動...
內容簡介 編輯推薦 目錄