PDA

Просмотр полной версии : OnRollOver - проблема


Jean
31.12.2005, 11:53
Доброго времени суток.

Такая проблема: существует Label выглядит также как и слова героя в каком-нибудь комиксе - то есть в виде облачка. Я хочу сделать так, что когда я вожу по нему, все что под ним было неактивно.

сделал сначала вот так:
function onRollOver()
{
main.active = false;
}

function onRollOut()
{
main.active = true;
}

все вроде замечательно, но возникает проблема, если я на этот label положу еще какие-нибудь объекты (например checkbox или еще что), то они будут неактивны. Если бы геометрия у лэйбла была простая, то я бы просто внутри onMouseMove высчитывал пересечение, но в моем случае это не подходит

Всех с наступающими или уже прошедшими праздниками!

MOHCTEP
31.12.2005, 16:35
Ссылки на объекты, которыми будете управлять, занесите в массив и по событиям на Вашей метке, просто циклически перебирайте массив, меняя нужное свойство.
Например:
var ar:Array=[];
ar.push(mc1,mc2,mc3,...);
var al:Number=ar.length;
function changeStatus(status:Boolean){
for(var i=0;i<al;i++){
ar[i].active=status;
}
}
label_mc.onRollOver=function(){
changeStatus(false);
}
label_mc.onRollOut=function(){
changeStatus(true);
}

Jean
02.01.2006, 11:38
Спасибо, но я немного не то хотел узнать.

В общем, проблема заключается в том, что я создаю movie clip внутрь него например кладу checkbox

если я на весь movie clip навешаю событие onRollOver, то тот checkbox внутри клипа станет неактивным.

Можно ли это решить как-нибудь?

Antares
02.01.2006, 15:43
Это называется "непроникаемостью событий" и в АС3 нас никогда больше не потревожит :)

Выход тут один: руками вызывать обработчики компонентов / роликов внутри.