2011-09-14 35 views
0

我有一個使用自定義事件在Flash和Flex之間傳遞的對象。我正在導入一個包含對象類副本的flex庫。這些類是相同的,但是當我嘗試訪問flex中的對象時,出現此錯誤:Flex - 跨域對象

TypeError: Error #1034: Type Coercion failed: cannot convert com.cackleberries.data.api::ApiObject$ to com.cackleberries.data.api.ApiObject.

任何想法?

這個函數傳遞到閃存從AIR /柔性

public function airEventHandler(type:String, data:Object):void 
{ 
    switch(type) 
    { 
      case "air_api_call": 
       if(data) 
       { 
        if(data.hasOwnProperty("apiObject")) 
        { 
         trace("got air api call event in application"); 
         serverApi.makeApiCall(ApiObject(data.apiObject)); 
        } 
       } 
       break; 
    } 
} 

我得到的錯誤,當我通過​​到serverApi.makeApiCall回調。該函數以​​作爲參數。最初,數據對象是使用apiObject密鑰創建的,其值爲​​(在閃存中完成)。

+1

你使用什麼方法傳遞數據。顯示一些代碼。 –

+0

現在顯示你正在分配的代碼data.apiObject = ???? –

回答

0

該問題與serverApi.makeApiCall不符,但與data.apiObject轉換爲​​。

你得到這個錯誤的原因是因爲data.apiObject是Flash應用程序中包含的​​類型,而flex應用程序使用的是自己包含的​​。 儘管源文件是相同的,但對於玩家來說,它們顯然不是。我認爲這是因爲flex編譯器的編譯方式與flash編譯器完全不同,但我不是100%。

無論如何,解決這個問題你應該使用接口。讓​​實現一個IApiObject接口,該接口具有在其中定義的所有必要方法(即Flex應用程序將需要的方法),然後在柔性端鑄造data.apiObjectIApiObject而不是​​。