PDA

Просмотр полной версии : добавить обработку событий объекту


Zhihar
19.08.2008, 18:26
Приветствую

У меня стоит задача - сделать так чтобы при нажатии на объекты (грибы) они уменьшались в размере

Написал такой код:


function PressOnMush(pObject:Object)
{
// pObject._width = 9.6;
// pObject._height = 6.5;

trace(pObject.m_nMushID);
}

for (nMushNum:Number = 1; nMushNum <= 8; nMushNum ++)
{
var pCurrentMush:Object = _root["mush" + nMushNum];

pCurrentMush.m_nMushID = nMushNum;
pCurrentMush.onPress = function() {PressOnMush(pCurrentMush)};
}


при нажатии на гриб выдается всегда mush8
где у меня ошибка в коде?

Division
19.08.2008, 18:39
for (nMushNum:Number = 1; nMushNum <= 8; nMushNum ++)
{
var pCurrentMush:Object = _root["mush" + nMushNum];

pCurrentMush.m_nMushID = nMushNum;
pCurrentMush.onPress = function() {
this._width = 9.6;
this._height = 6.5;
};
}
Может так?

при нажатии на гриб выдается всегда mush8
Потому что по окончанию цикла pCurrentMush равен mush8.

Zhihar
19.08.2008, 18:43
Да, так заработало, просто мне не очень хочется писать код обработчика напрямую
хотелось бы сделать черз вызов функцией

Division
19.08.2008, 18:48
Ну так сделай) В чем была твоя ошибка я уже сказал. А вообще ИМХО лучше юзать ООП.

Zhihar
19.08.2008, 18:50
кстати не совсем в тему
а как поменять порядок следования объектов?

т.е. чтобы объект а был над объектом б

Double
19.08.2008, 20:00
mushPress = function() {
trace(this.id)
}

for (i=0; i<8; i++) {
_root["mush"+i].id = i;
_root["mush"+i].onPress = mushPress
}
ооп лучше, хотя это уже некое подобие )

о том, что не в тему: в другой топик (а лучше в поиск). через 5 минут поле тебя этим вопросом озадачится кто-то ещё. естественно в теме с таким названием, как у этой, он искать ответа не будет.

etc
20.08.2008, 10:48
Угу, не будет. Тема закрыта к тому же окажется.