1
使用ActionScript,當幾個客戶端連接到遠程SharedObject時,它可以作爲「實時」數據交換,所有客戶端在任何客戶端進行更改時都會更新。這顯然是有效的,因爲只有服務器有實際的訪問權限,並且只是簡單地播放這個改變。幾個本地SWF可以共享一個本地SharedObject嗎?客戶端可以共享服務器上的遠程SharedObject嗎?
有沒有辦法在加載到獨立投影儀的幾個本地swf文件之間啓用相同類型的功能?
具體來說:用戶可以運行一個在線遊戲客戶端的多個(有些具有60個或更多....)實例,其中包括相同虛擬世界的地圖。如果每個實例都可以訪問相同的數據,那麼它將會節省很多(地圖比喬治亞州大)內存。
由於每個客戶端都需要讀寫訪問權限,sharedObject明顯會產生文件訪問頭痛。有沒有其他技術可用或加載輔助swf的方式可能作爲'服務器'?
都能跟得上。不起作用。使用API中的示例,更改'清除'功能以重新加載mySo。運行一個實例,設置一個值。打開另一個,它讀取正確的值。現在嘗試再次寫入。第一例從未得到改變。打開另一個實例,它會得到正確的值。添加一個按鈕關閉並重新讀取SO。仍然沒有去。 (我甚至用setTimeout試過)一個打開的實例永遠不會更新,任何新的實例將始終正確讀取上次保存的值...任何正在運行的實例總是隻能看到它自己的更改。 – schwack
您是否設置了相同的**自定義**所有這些實例的'localPath'?如果你沒有提供這些,它將無法工作。如果您閱讀手冊,則說這是可能的,所以.. :) –
實際上,getLocal()方法的API指出:'返回僅對當前客戶端可用的本地持久共享對象的引用「。但!有一個部分的解決方案:不管有多少客戶共享該對象,最後一個寫入它的對象始終是永久的,因此關閉並重新打開它將檢索當前值。不幸的是,由於SharedObject沒有擴展EventDispatcher,所以沒有可以訂閱的事件。我相信這確實給了我足夠多的功能 – schwack