2008-11-08 26 views
1

我想在同一個網頁上的兩個flash對象之間設置一個雙向localConnection(LC)。一個對象是AS2和另一個AS3。在Flash中使用雙向localConnection時可能導致連接錯誤?

  1. 我使用一個LC對象在每個swf上發送和接收數據。 (這應該不重要,對吧?我嘗試使用兩個對象,一個用於發送,另一個用於接收,但遇到同樣的問題)。

他們.connect()正確,以便他們都聽。 但是,當我嘗試從AS2 SWF發送數據到AS3 LC時,出現錯誤。 這種情況發生的95%的時間,但有時它的工作,所以我知道這不是與LC名稱(我查了一下,很明顯)

有時,一個或兩個消息都經過和consequtive消息失敗的問題。

任何想法可能會導致它?

我打算創建一個多對一的連接圖,以便許多AS2 swf可以連接到一個AS3 swf。這會是一個問題嗎?

回答

0

我終於弄清楚是什麼引起了這個問題。

雖然在AS3中可以使用相同的LC對象發送和接收事件,但在AS2中這樣做會在一段時間後出現錯誤(可能在接收後嘗試發送)。

2

一個可能的原因是我注意到同一LC名稱的多個監聽器似乎不工作。要明白我的意思,請在兩個不同的選項卡上打開this page,並且您應該看到兩個「發送」SWF都能正常工作,但只會在您打開的第一個選項卡上收到該消息。我想你只能使用兩個SWF,但如果他們都試圖聽同樣的LC名稱,也許你看到類似的東西?

此外,我相信LC在某些方面禁用了SWF內部的隱形頁面元素,甚至可能只是在屏幕外。你在做那樣的事嗎?

0

你不是偶然有兩個不同的瀏覽器打開到同一頁嗎? LocalConnection將跨瀏覽器連接,這可能會導致該問題。

通常我所做的確保LC名稱是唯一的,即在服務器上生成隨機LC名稱,然後將該LC名稱傳遞給使用FlashVars的兩個swf。

它也可能與swf的加載順序有關。可能是在swf創建連接嘗試連接後,正在加載swf偵聽連接。然後,另外5%的時間,swf的負載按正確的順序。也許如果發生錯誤,請嘗試再次連接。

相關問題