日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 远程共享_【原创】(扫盲)远程共享对象SharedObject的用法

發布時間:2023/11/27 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 远程共享_【原创】(扫盲)远程共享对象SharedObject的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習fcs也有差不多一個月了,感覺最有特色的東西還是SharedObject.

今天就寫個基本的教程關于它,第一次寫教程(以前都是看教程-_-),手心都出汗了,心怕寫得有錯誤導讀者就慘了

,

斑竹有空看看,如果我的問題多就馬上刪掉,免得誤了大家.或是這在這里指出來

有問題的話在帖中大家討論,SharedObject有不少東西,本地操作就不說了(相信很多人沒接觸fcs也用過);就說說遠程共享對象吧.

基本的應用流程是:

my_nc = new NetConnection();

my_nc.connect("rtmp:/app",變量1,變量2,...);

mySO=getRemote("mySO",my_nc.uri,false)

mySO.connect(my_nc);

mySO.onSync=function(info){

}

mySO.data[property]=newValue//----------------------------------------------------------------------------------------------------------------

下面解析一下:

my_nc = new NetConnection();

my_nc.connect("rtmp:/app",變量1,變量2,...);

mySO=getRemote("mySO",my_nc.uri,false)

// mySO:共享對象名字;

// my_nc.uri:共享對象共享連接到my_nc.uri的用戶;

// false:還可以用true或空;英文解析是:

// 1. null or false :persistence not on the server

// 2. true: persistence on the server (not on the local);

// 3. A full or partial local path to the shared object

// persistence on the server and local

// 我也不大清楚這個意思,但我總結:false:當所有用戶都停掉

// 時 mySO清空;true: 不清空,

mySO.connect(my_nc);

//連接mySO到服務器

mySO.onSync=function(info){

}

//mySO事件

改變它的值(一旦改變它的值就會觸發onSync事件):

mySO.data[property]=newValue

到這里就可以基本應用,當然如果你想在服務器也創建一個對應的mySO來也可以用

application.mySO = SharedObject.get("mySO", false);

但要注意的是在服務器里操作mySO的屬性是要用setProperty來改變,或是把一個對象作為它的屬性,那么操作對象就不用用setProperty了.

//----------------------------------------------------------------------------------------------------------------

下面來重點說下mySO的事件:onSync

SharedObject有兩個事件:onStatus和onSync

兩個基本上是一樣的,但是有一點(不知道是不是這點使得大家不用onStatus):onStatus對新值和舊值相同時是不會觸發這個事件的,

而onSync卻不管是否相同都會觸發;

先看一個例子:

my_So.onSync = function(info) {

for (name in info) {

trace("[sync] Reading Array Object #"+name+" code ("+info[name].code+","+info[name].name+")");

switch (info[name].code) {

case "change" :

var property = info[name].name;

var newValue = this.data[property];

_root[property+"_in"].text = newValue;

break;

case "success" :

break;

case "reject" :

break;

case "clear" :

break;

case "delete" :

break;

trace("data is updated");

}

}

};

操作:

mySO.data[mytxt]=50

//----------------------------------------------------------------------------------------------------------------------

干脆就在上面注析吧:

my_So.onSync = function(info) {//info:事件onSync觸發的返回信息, 是個一維數組,兩個屬性(code,name)

for (name in info) {//name:變化的屬性名,這個是一個遍歷,看看在這次事件中有哪些屬性改變了,(常常只有一個屬性改變)

trace("info[name].code:"+info[name].code+" info[name].name: "+info[name].name);//輸出info[name].code:相對于本客戶端的事件類型:如下的switch;

//輸出info[name].name:屬性名字

switch (info[name].code) {

case "change" ://當事件類型是"改變"時,基本就是在這里廣播事件的,其它的每個客戶都執行這里的語句

var _property = info[name].name;

var _newValue = this.data[_property];

_root[_property].text = _newValue;

break;

case "success" ://當事件類型是"成功"時:注意:當本客戶端上改動觸發自已是"成功";而其它客戶端則是"改變";

break;

case "reject" ://當事件類型是"修改不成功"時:

break;

case "clear" ://這個用得比較少,不是很清楚,根據英語的意思自已也不是很理解:

//This value is received by a Flash player that connected to a SharedObject for the first time.

//Clear is also sent if the server and client data are so far out of sync that the client dumps

its version of the SharedObject and resynchronizes itself completely.

break;

case "delete" ://當mySO給delete掉時

break;

trace("data is updated");

}

}

}//----------------------------------------------------------------------------------------------------------------

說到my_SO不得不提的是my_SO.send()這個函數(我很喜歡用),它也是類似onSync的廣播事件的用途.這個很好用.

用法:

mySO.send("toggleBall", 變量1, 變量2...);

對應在client或是server端的mySO屬性函數:

mySO.toggleBall=function( 變量1, 變量2..){

這個函數在其它所有的客戶端執行,就像onSync一樣的效果

}

總結

以上是生活随笔為你收集整理的java 远程共享_【原创】(扫盲)远程共享对象SharedObject的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。