PDA

Просмотр полной версии : не удается назначить объекту функции onRollOver onRollOut


Zhihar
16.04.2008, 16:54
Приветствую

есть объекты - mcLink1, mcLink2

когда каждому объекту прописываю функцию


on(rollOver)
{
RollUp(0);
}

on(rollOut)
{
RollOut(0);
}


а когда решил сделать так (чтобы не писать одно и тоже много раз):


for (nIndex = 0; nIndex < g_pObjects.length; ++ nIndex)
{
g_pObjects[nIndex].onRollOver = function()
{
RollUp(nIndex);
};

g_pObjects[nIndex].onRollOut = function()
{
RollOut(nIndex);
};
}


код в слое где и кнопки

то почему-то работать перестало, хотя цикл выполняется

Vertax
16.04.2008, 17:11
Так не выйдет.
Как вариант можно что то типа:
g_pObjects = [mcLink1, mcLink2];
for (nIndex = 0; nIndex < g_pObjects.length; ++ nIndex)
{
g_pObjects[nIndex].nIndex = nIndex;
g_pObjects[nIndex].onRollOver = function()
{
RollUp(this.nIndex);
};

g_pObjects[nIndex].onRollOut = function()
{
RollOut(this.nIndex);
};
}

Ведьмак
16.04.2008, 19:56
помоему чем создавать массив и туда описывать нужные объекты (а если их 49 ?) проще сделать for..in