Я совершенно новичок в Adobe 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());
Любая подсказка?
С уважением,
Michel
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");
}
Начало определения класса:
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; }
...