2011-03-28 37 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

相关问题