這個(gè)教程進(jìn)行了Flash Communication Server MX中的Shared Object的探討。(部分教程原型改編自Flash Com幫助文檔)。
我們利用Flash Com進(jìn)行共享信息的第一步就是共享文字信息。多個(gè)瀏覽者可以同時(shí)瀏覽同一組信息甚至是同時(shí)編輯同一組信息。一個(gè)瀏覽者修改過(guò)一個(gè)Shared Object(以下簡(jiǎn)稱SO)的同時(shí),其他瀏覽者將會(huì)看到SO的變化。
這個(gè)教程必須的工具:
- Macromedia Flash Communication Server MX
- Macromedia Flash MX
下面我們來(lái)一起探討一下SO的概念和初步的處理方式:
- 我們最早拿到Flash MX的時(shí)候,一個(gè)新功能就是Flash MX能夠操作Local Object,最常見(jiàn)的就是在一個(gè)Flash swf文件上進(jìn)行鼠標(biāo)右鍵的點(diǎn)擊,進(jìn)而操作settings...進(jìn)入一個(gè)設(shè)定界面,如下圖:
這個(gè)界面中點(diǎn)擊文件夾圖標(biāo)就是對(duì)Local Object的存儲(chǔ)空間進(jìn)行控制。同樣,F(xiàn)lashCom在推出之后,增加了一個(gè)SO的概念。這個(gè)SO目的就是讓多數(shù)瀏覽者在同時(shí)瀏覽一個(gè)swf的時(shí)候能夠共享信息。這些信息包括圖像、視頻、音頻、MovieClip和文字。有了SO,才能夠基于FlashCom開(kāi)發(fā)出共享信息的視頻會(huì)議、電子白板、在線聊天室等多種應(yīng)用。
- 舉個(gè)最簡(jiǎn)單的例子,Local Object就是你一個(gè)人躲在家里吃一個(gè)大蘋果,外面的人不知道你怎么吃的,吃了多少;而SO就好比你和家人分享整個(gè)大蘋果,每一個(gè)人在上面吃掉一口,都會(huì)讓其他人清楚的看到蘋果的變化,這時(shí)整個(gè)蘋果的意義就是SO的意義。只不過(guò)FlashCom中的SO不會(huì)被吃光罷了 :) 。
- 我們現(xiàn)在來(lái)看一下SO的工作流程圖:
(該圖來(lái)源于FlashCom文檔)
- 下面我們來(lái)詳細(xì)的講解一下上面流程圖中的SharedObject的工作流程。我們每次在Client端的FlashMX中編寫SharedObject的程序時(shí),都要有這行代碼:
SharedObjectName_so=SharedObject.getRemote("newSharedObjectName",NetConnection.uri,false); 上面這行程序就是生成了一個(gè)具有Share屬性的Object,能夠讓每個(gè)請(qǐng)求這個(gè)Swf文件的瀏覽者得到關(guān)于這個(gè)SharedObject的名稱和屬性,并且能夠?qū)ζ洳僮。接下?lái),是讓這個(gè)SO(SharedObject)能夠在應(yīng)用中生效。記得站長(zhǎng)說(shuō)過(guò)么,沒(méi)有NetConnection,你什么都別做,也什么都別想做。這里先聲明的這個(gè)SharedObject就必須使用Connect方法連接上先前你創(chuàng)建的那個(gè)NetConnection對(duì)象。接下來(lái)就需要: SharedObjectName_so.Connect(NetConnetionObject); SO連接成功后,瀏覽者就都可以對(duì)這個(gè)SO進(jìn)行操作了。就像兩個(gè)人塔積木,你可以放上去一塊積木讓外形產(chǎn)生變化,同樣,另外一個(gè)也可以這樣做,而且,你們倆做的動(dòng)作,對(duì)方都清楚,積木的外形對(duì)于兩個(gè)人而言,也公開(kāi)。
- 可是程序是嚴(yán)謹(jǐn)?shù),你?duì)SharedObject所做的操作,必須能夠具有同步的效應(yīng)。所以,我們要考慮在SharedObject的OnSync事件(Events)進(jìn)行共享信息的同步更新。之后,F(xiàn)lashCom會(huì)把在OnSync事件范圍內(nèi)的所有操作共享,就像上圖中的obj1.data.x=4一樣,每個(gè)人都在FlashCom捕獲到OnSync發(fā)生變化時(shí),要求FlashCom發(fā)送更新的數(shù)據(jù)給他們。這樣,所有需要共享的信息就同步了。
- 我們來(lái)看一個(gè)實(shí)例(該實(shí)例來(lái)源于FlashCom自帶Sample)。我們先建立一個(gè)名稱為ball的movieclip,這個(gè)mc中的ball是一個(gè)按鈕元件,將來(lái)用來(lái)進(jìn)行鼠標(biāo)拖拽動(dòng)作。如下圖:
- 把ball從庫(kù)中(F11)拖拽到場(chǎng)景上,給這個(gè)movieclip一個(gè)實(shí)例名稱(instance name),我們叫做shareBall_mc。之后,存儲(chǔ)整個(gè)文件在C:\Inetpub\wwwroot\flashcom\applications\doc_sharedball路徑下,F(xiàn)la文件名為doc_sharedball。如下圖:
- 在時(shí)間軸上選定第一幀,在這里進(jìn)行編程,我們來(lái)看下面的程序段落:
- 之后,我們發(fā)布這個(gè)Flash來(lái)看看。如下圖:
7yue.com獨(dú)家授權(quán)轉(zhuǎn)載
出處:7yue.com
責(zé)任編輯:無(wú)意
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|