有時候需要在二個或者多的swf文件之間進(jìn)行數(shù)據(jù)交換,比如你可能需要當(dāng)用戶點擊 導(dǎo)航欄的每個鏈接之后,相應(yīng)的主體swf顯示相關(guān)內(nèi)容,而這時,這二個相關(guān)的不是 在同一個swf文件中,這時候 需要使用LocalConnection. LocalConnection 可以在flash6 中使用,當(dāng)安裝過flashcom之,LocalConnection 出現(xiàn)在動作面板的Communication ↓LocalConnection.LocalConnection的標(biāo)識名稱是_lc如下圖所示:
但是使用LocalConnection ,并不一定需要flashcom,它可以單獨(dú)使用,或者和flashcom 等一起使用.LocalConnection有一個構(gòu)造器和四個方法,二個事件. 先來看一個絕對是本地連接的代碼.
//要想使用LocalConnection連接對象,必須有一個LocalConnection對象. var 鏈接=new LocalConnection(); //loadvars xml XMLSocket等通常連接一個網(wǎng)域(uri),本地連接比較簡單,使用任意名字.僅是一個標(biāo)識. 鏈接.connect("連接名字"); //在LocalConnection對象下定義一個方法,供LocalConnection.send調(diào)用.和NetStream.send等相似. 鏈接.方法=function (參數(shù)) { trace(參數(shù));} //調(diào)用已經(jīng)定義的方法. 鏈接.send("連接名字","方法","輸出這個參數(shù)"); //輸出: 輸出這個參數(shù)
下面看一個例子,頁面內(nèi)部傳遞消息: 新建一個文件大小為300*200,放一個發(fā)布按鈕和二個文本框(名稱分別為輸入框 顯示框),在時間線的第一 楨加入以下代碼.
//新建一個連接對象 連接對象=new LocalConnection(); //連接到swfa 文件2連接到swfa,需要注意的是命名不能含有特殊字符,命名也不能含有數(shù)字,因為會造成工作不穩(wěn)定 連接對象.connect("swfa"); //發(fā)送消息 btn.onPress= function 發(fā)送消息() { //文件2發(fā)送消息到 連接對象.send("swfa","接收消息",輸入框.text); 連接對象.send("swfb","接收消息",輸入框.text);} //接收消息 連接對象.接收消息=function (消息) { 顯示框.text=顯示框.text+ newline+ 消息; }
文件1:
文件2:
最后,簡單介紹一下LocalConnection其他的方法事件資料: close([連接名字]) 關(guān)閉一個連接(最近使用的連接) domain()方法 參數(shù)無,返回一個本地域. .onStatus([infoObject])事件 當(dāng)LocalConnection狀態(tài)變化的時候,比如錯誤等.觸發(fā)這個事件. .allowDomain([domain])事件 當(dāng)LocalConnection收到一個連接請求或者發(fā)送.或者調(diào)用方法 或者接收時候自動發(fā)生.
下載源文件:LocalConnection.rar
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇Flash專欄版塊參加討論
|