2010-06-20 27 views
0

我有兩個MXML組件文件,並嘗試將它們作爲類使用。其中一人有一個簡單的功能:使用MXML組件作爲ActionScript類的問題

GUIFriend.mxml

<mx:Script> 
    <![CDATA[   
     public function createName(f:Friend) { 
      return 'friendProfile: ' + f.uid; 
     } 
    ]]> 
</mx:Script> 

而其他嘗試使用它:

GUIFriendContainer.mxml

<mx:Script> 
    <![CDATA[ 

     import GUIFriend; 

     public function getFriendProfile(f:Friend):GUIFriend { 
      var result:DisplayObject = getChildByName(GUIFriend.createName(f)); 
      if (result is GUIFriend) { 
       return result; 
      } else { 
       // TODO: throw error 
       return null; 
      } 
     }   
    ]]> 
</mx:Script> 

但在引用'createName'函數的行我得到兩個錯誤:

  1. 調用可能未定義的方法 createName通過引用與 靜態類型類。 - (更新)我忘了讓方法是靜態的。
  2. 隱式強制 與靜態類型的值 flash.display:DisplayObject到 可能不相關的類型GUIFriend。

但我看不出理性的原因。我的代碼有什麼問題?

回答

2

對於第二個問題,請嘗試

var result:DisplayObject = getChildByName(GUIFriend.createName(f)) as DisplayObject; 

如果你仍然有問題,暫時類型的結果作爲對象,並把在調試斷點來檢查什麼是真的來從getChildByName回電。

+0

解決了它,謝謝! – 2010-06-20 11:29:33

1

您試圖直接通過類名調用實例方法。

您或者需要使該方法爲靜態或創建該類的實例並調用該方法。

+0

謝謝!這是錯誤1的問題。 – 2010-06-20 08:57:34