2011-03-28 38 views
0

我完全新的到Adobe的Flex Builder 3 我被分配了一個功能齊全的項目,但我想最簡單的功能添加到任何類,我總是得到同樣的錯誤:Adob​​e Flex Builder 3:無法將任何方法/函數添加到現有項目的任何類中?

呼叫通過與靜態類型

例如參考可能未定義的方法,在一些隨機類有這樣定義的函數:

public function GetID() :String  { return m_strID; } 

如果我嘗試定義新象下面這樣:

public function GetIDFoo() :String  { return m_strID; } 

然後我試着打電話給他們兩個這樣的:

trace ("This line is ok : " + oPhysicalScreen.GetID()); 
trace ("This line gives me an error : " + oPhysicalScreen.GetIDFoo()); 

任何線索?

問候, 米歇爾

PS:完整的代碼,我做電話:

public function UpdatePhysicalScreenData(oScreenNode:XML):void 
{ 
    if (m_vPhysicalScreens == null) 
    { 
     return; 
    } 

    var oScreenList:CMultyList = m_rBasicScreen.GetPhysicalScreensPanel().GetScreenList(); 

    var oPhysicalScreen:CPhysicalScreen = FindPhysicalScreen([email protected]); 

    if (oPhysicalScreen == null) 
    { 
     oPhysicalScreen = new CPhysicalScreen(); 
     { 
      oPhysicalScreen.Initialize([email protected]); 
      oPhysicalScreen.SetInfo([email protected]); 

      var eList:uint = [email protected]; 

      if (eList < SCREENS_LIST_TITLES.length) 
      { 
       oScreenList.SelectCurrentList(eList); 
      } 
      else 
      { 
       oScreenList.SelectCurrentList(2);//Test 
      } 
      var oNewEntry:CEntry = oScreenList.CreateEntryInCurrentList(oPhysicalScreen.GetID() + " " + oPhysicalScreen.GetInfo(), oPhysicalScreen); 
      //var oNewEntry:CEntry = oScreenList.CreateEntryInCurrentList(oPhysicalScreen.GetDisplayName(), oPhysicalScreen); 

      oNewEntry.ChangeTextColor(CPanelPhysicalScreens.STATE_COLORS[oPhysicalScreen.GetState()]); 
     } 

     m_vPhysicalScreens.AddAtEnd(oPhysicalScreen); 
    } 

    if (oPhysicalScreen != null) 
    { 
     //should never be null but ... 
     trace ("UpdatePhysicalScreenData : " + oPhysicalScreen.GetID() + " " + oPhysicalScreen.GetInfo() + " State : "+ oPhysicalScreen.GetState()); 
     trace ("UpdatePhysicalScreenData : " + oPhysicalScreen.GetIDFoo() + " " + oPhysicalScreen.GetInfo() + " State : "+ oPhysicalScreen.GetState()); 
    } 
    oPhysicalScreen.SetDiffusionCode([email protected]); 
    oPhysicalScreen.SetCurrentSequence((int)([email protected])); 
    oPhysicalScreen.SetIsAlive([email protected] == "true"); 
} 

啓動類定義的:

public class CPhysicalScreen 
{ 
public static var STATE_UNUSED   :uint = 0; 
public static var STATE_SYNC   :uint = 1; 
public static var STATE_UNSYNC   :uint = 2; 
public static var STATE_KO    :uint = 3; 

public static var STATE_MAX_WAIT_TIME :uint = 5000; 


private var m_strID    :String; 
private var m_eState   :uint; 
private var m_strInfo   :String; 
private var m_strDiffusionCode :String; 
private var m_uiCurrentSequence :int; 
private var m_bIsAlive   :Boolean; 


public function CPhysicalScreen() 
{ 
    super(); 

    m_strID    = null; 
    m_eState   = STATE_UNUSED; 
    m_strInfo   = ""; 
    m_strDiffusionCode = ""; 
    m_uiCurrentSequence = 0; 
    m_bIsAlive   = false; 
} 


public function GetID()        :String  { return m_strID; } 
public function GetIDFoo()        :String  { return m_strID; } 

...

+0

只是一個想法,但什麼是當你調用oPhysicalScreen的類型方法?它在課堂上如何聲明?是否可能oPhysicalScreen被引用爲您調用「GetIDFoo()」的接口類型,並且接口不包含您引入的方法? – bedwyr 2011-03-28 15:09:10

+0

你可以添加完整的代碼?基本的功能定義和原型設計似乎很好。 – Neeraj 2011-03-28 15:10:34

+0

我在電話中添加了全功能代碼。 和類定義的開始... – Michel 2011-03-28 15:32:00

回答

0

我已經找到了解決辦法,感謝@ jeremy.mooer和@frankhermes :-)

在項目屬性:ActionScript構建路徑:庫路徑選項卡。

已有項目館藏。

帶有一些swc文件的「lib」文件夾。這些swc來自另一個需要的項目。

我添加了一個新項目(添加項目按鈕),然後我選擇了最重要的項目正在構建所需的SWC文件。

現在,當我在這些其他項目中進行更改時,它們可用於我的主項目。

我想這些了無關聯時,該項目給了我......

感謝的人誰:-)幫助

0

類您發佈的CPhysicalScreen不包含結案}
此外,您可能必須將其包裝在一個包裝中。

+0

感謝您的意見,但如上所述,這只是班級定義的開始。一切都在一個包裏。 – Michel 2011-03-30 06:42:31

+0

通常這種錯誤是對大括號不正確。事實上,你發佈的代碼在調用完成的地方我看到了一些額外的大括號,但這不是問題,而是你可能想要查看的問題。沒有你發佈完整的代碼,我不能說更多。 – 2011-03-30 19:20:53

+0

那麼你必須明白,項目中的一切都很好。我只做了一個「GetID」函數名稱「GetIDFoo」的副本。 然後,在「GetID」被調用的地方,我稱之爲「GetIDFoo」 真的,我沒有碰別的東西: - / – Michel 2011-03-31 07:56:33

相關問題