Apache flex Adobe Flex Builder 3:无法向现有项目的任何类添加任何方法/函数?
我是Adobe Flex Builder 3的新手。 我被分配了一个全功能项目,但当我想向任何类添加最简单的函数时,我总是会遇到相同的错误: 通过静态类型的引用调用可能未定义的方法 例如,在某个随机类中,有一个函数定义如下:Apache flex Adobe Flex Builder 3:无法向现有项目的任何类添加任何方法/函数?,apache-flex,actionscript-3,adobe,Apache Flex,Actionscript 3,Adobe,我是Adobe Flex Builder 3的新手。 我被分配了一个全功能项目,但当我想向任何类添加最简单的函数时,我总是会遇到相同的错误: 通过静态类型的引用调用可能未定义的方法 例如,在某个随机类中,有一个函数定义如下: public function GetID() :String { return m_strID; } trace ("This line is ok : " + oPhysicalScreen.GetID()); trace ("This line gives
public function GetID() :String { return m_strID; }
trace ("This line is ok : " + oPhysicalScreen.GetID());
trace ("This line gives me an error : " + oPhysicalScreen.GetIDFoo());
如果我尝试定义一个新的,如下所示:
public function GetIDFoo() :String { return m_strID; }
然后我试着这样称呼他们:
public function GetID() :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(oScreenNode.@id);
if (oPhysicalScreen == null)
{
oPhysicalScreen = new CPhysicalScreen();
{
oPhysicalScreen.Initialize(oScreenNode.@id);
oPhysicalScreen.SetInfo(oScreenNode.@info);
var eList:uint = oScreenNode.@list;
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(oScreenNode.@diffusionCode);
oPhysicalScreen.SetCurrentSequence((int)(oScreenNode.@currentSequence));
oPhysicalScreen.SetIsAlive(oScreenNode.@alive == "true");
}
…您发布的类CPPhysicalScreen不包含结束语
}
此外,您可能还需要将其打包。我已经找到了解决方案,感谢@jeremy.moore和@frankhermes:-) 在“项目属性:ActionScript生成路径:库路径”选项卡中 存在现有的项目库 一个包含一些swc文件的“lib”文件夹。这些swc来自另一个需要的项目 我添加了一个新项目(添加项目按钮),然后我选择了构建所需swc文件的项目 现在,当我在这些其他项目中进行更改时,它们将可用于我的主项目 我想当这个项目交给我的时候,这些就没有联系了
感谢帮助您的人:-)这只是一个想法,但是当您调用该方法时,oPhysicalScreen的类型是什么?它是如何在类中声明的?在调用“GetIDFoo()”时,oPhysicalScreen是否可能被引用为一种接口类型,而该接口不包含您引入的方法?能否添加完整代码??基本的函数定义和原型设计似乎很好。CPPhysicalScreen与具有函数UpdatePhysicalScreenData的类在不同的项目中吗?未包括您的包区域设置和导入。。。(我猜我的问题会给你问题的答案?)。祝你好运——Jeremy你能通过改变一个有效的函数来打破现有的代码吗?如果该更改也没有更改任何内容,则您必须编辑错误的源文件。也许这些类也在.swc中?您可以将该Canra项目的bin文件夹添加到其他项目的库路径中。这样,swc文件源的更改将自动进入您的其他项目。感谢您的输入,但如上所述,这只是类定义的开始。而且所有东西都在一个包中。通常这种错误是由于大括号不正确造成的。事实上,你发布的代码在调用的地方我看到了一组额外的大括号,这不是问题所在,但是,这是你可能想回顾的东西。没有你发布完整的代码,我真的说不出更多。好吧,你必须明白,在项目中的一切工作良好。我刚刚复制了“GetID”函数名“GetIDFoo”。然后,在调用“GetID”的地方,我调用“GetIDFoo”,实际上我不碰任何其他东西:-/