1. 程式人生 > >AxShockwaveFlash控制元件CallFunction時報錯: 對 COM 元件的呼叫返回了錯誤 HRESULT E_FAIL。

AxShockwaveFlash控制元件CallFunction時報錯: 對 COM 元件的呼叫返回了錯誤 HRESULT E_FAIL。

我在寫完第一種情況後,後來又再次遇到了這個問題,而這次把我搞了大半天。最後卻是一個坑爹的結果。詳見第二種情況

第一種情況:
1.現在有兩個Form窗體:FrmGameRoom(遊戲室),FrmGameHall(遊戲大廳)   PS: 遊戲的偵聽資料寫在FrmGameHall 的Form窗體中。 2.當我 在  FrmGameHall中點選進入房間後,會向伺服器傳送資訊,使其他在遊戲大廳中的玩家也更新房間情況 3.此時當另外的玩家 在  FrmGameHall中點選進入房間,也會向其他伺服器傳送資訊更新遊戲大廳的情況。此時就會報錯。如下圖

經過一天多的掙扎終於找到了問題。 解決方法: 之前當我從 FrmGameHall(遊戲大廳)  跳轉進入 FrmGameRoom(遊戲室) 時。用的是ShowDialog(),如圖:


但是我之後把方法改為Show() 時  程式就不報錯了。 具體原因可能是因為ShowDialog()  後    FrmGameHall的物件丟失了。 問題暫時解決 第二種情況: 1.說明C#呼叫Flash的介面方法出了問題,至於哪裡出錯很籠統,要檢視程式碼的邏輯和程式碼執行是否一致, 還有就是C#和Flash之間的通訊協議是否一致,欄位型別也好好檢查一下。 2.而我遇到的問題就是ExternalInterface.addCallback()的回撥函式內部報錯了。(有個變數未定義,尷尬大哭