2010-10-20 30 views
1

我正在服務兩個不同的swf,它們讀取和寫入相同的SharedObject變量。 SharedObject變量是一個數字,每個swf檢查該數字以確保它不使用相同的數字兩次。然後它存儲它選擇的最後一個號碼。通過這種方式,兩個swfs都不應該使用相同的數字兩次,不管它們加載的順序如何。ActionScript 3 SharedObjects不會持續存在於不同的swfs中?

如果我反覆加載其中一個swfs,則永不兩次的旋轉工作。但是,在swf之間來回切換時,有時會重複該數字。 SharedObjects應該對Flash Player是全球性的,那麼爲什麼會發生這種情況呢?

由於

回答

3

共享對象實際上被賦予其自己的文件夾,以便它們不會與另一個同名的SO發生衝突。如果你想讓多個SWF訪問單個SO,那麼你需要爲SO指定一個實際的路徑,而不是讓Flash爲你創建一個SO。這迫使SWF讀取/寫入相同的SO。

這裏是一個包含更深層次的解釋和一些不同的解決方案的文章:

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html

3

共享對象是文件名特異性和位置特定 根路徑是:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\ 

但對於www.example.com/res/flash/file1.swf和www.example .COM/RES /閃光燈/ file2.swf這將是:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file1.swf\ 

和:

C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\436UUXWX\www.example.com\res\flash\file2.swf\ 
+0

啊哈!那麼有沒有辦法通過swfs訪問SharedObjects? – Yarin 2010-10-20 20:15:19

+0

您應該只爲此分配相對路徑...以下是相關文章的信息和鏈接:指定路徑 - 您可以使用可選的路徑名參數指定SharedObject文件的位置。該文件必須是該域的SharedObject目錄的子目錄。例如,如果您在本地主機上請求應用程序並指定以下內容:mySO = SharedObject.getLocal(「myObjectFile」,「/」); http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d80.html – exoboy 2010-10-20 20:17:20

+0

@exoboy - 謝謝! – Yarin 2010-10-20 20:19:10