PDA

Просмотр полной версии : onRollOver animation


LUCKY SHAMROCK
09.05.2009, 18:00
Здраствуйте! Возникла не болйшая проблемка.. смисл в том, что при на водке (так скажем) влевую частй екрана появляетца плавно 2 кнопки

left.onRollOver = function(){
lb.leftbtns.gotoAndPlay(2);
}
left.onRollOut = function(){
lb.leftbtns.gotoAndPlay(18);
}

Значит на 10 кадре стоп(); теперй у каждой кнопки естй аналоги4ний код, к примеру такой:

btn1.onRollOver = function(){
btn2.gotoAndPlay(2);
}
btn1.onRollOut = function(){
btn2.gotoAndPlay(18);
}


и вот проблема появляетца когда наводиш на одну из етих кнопок, начинает проигриватй фреими не в кнопках а сам клип в котором находятца ети кнопки.. подскажите как ето правилйно должно работатй.
благодарю

Stargazer
09.05.2009, 19:02
Что указали - то и играется.
Почитайте про this, _parent и _root.

P.S. Слово "аналогичный" пишется через "ч" (в противоположной части клавиатуры от цифры 4).

LUCKY SHAMROCK
10.05.2009, 05:00
Старгазер ти точна понял вопрос? Можна ли в clipe которий появляетца при onRollOver сделатй ешё одну кнопку при наводке которой еше срабативает один clip внутри уже самой кнопке.. я просто даже задав код на кнопку
on(rollOver){
trace("xxx");
}

без никаких указаний, цлип в котором кнопка продолжает игратй чего мне не нужно.

Stargazer
10.05.2009, 11:06
Ты прав. Этой детали я не понял.

Ответ: этого нельзя сделать напрямую. События наведения, уведения, щелчка и т.д., действительно, не будут восприниматься дочерними клипами, если у родителей есть похожий обработчик.

Могу предложить 2 решения:
1. Самое удобное - это изменить структуру вложений так, чтобы клипы оказались на "параллельных ветвях". Например, сделать невидимый клип, который будет лежать поверх нужной области и реагировать на появление мышки. При этом другие кнопки будут лежат внутри появляемого клипа, который не будет связан на прямую с невидимым.
2. Почитать про hitTest и проверять пересечение мышки с клипами вручную. Я думаю, что если нет жёстких требований - то лучше первый вариант.

LUCKY SHAMROCK
10.05.2009, 17:10
Вообшем вчера полазил и по flasher.ru и в округ интернета на темы с етом проблемой..да нелйзя onRollOver исполйзоватй внутри ешё одного onRollOver все предлогают либо hitTest либо создания нового контейнера..
Ну а толком нигде конечного резулйтата не нашол.. почитал про hitTest.. сделал код:
function раз(){
trace('раз');
}
function два(){
trace('два');
}
lb.onRollOver=function(){
lb.leftbtns.gotoAndPlay(2);
if(lb.leftbtns.exitl.hitTest(_xmouse,_ymouse)==true){
два();
}else{
раз();
}
}

видаёт .раз. не работает такой вариант!? давайте наверное исходник дам..

http://www.bigiwin.com/index.fla

Добавлено через 24 часа 54 минуты
Експерти подскажите пожалуйста ето реалйно так сделатй как я запланировал.. вот сайт http://www.bigiwin.com/ тут при наведении на левую частй екрана(кнопка на всю половину екрана) играет клип, теперй нада чтоби ети две кнопочки тоже работали при наведении.. hitTest не помогает в етом случае т.к. кнопка на bсю частй екрана и покривает осталйние.. что делатй? естй виход из етой ситуации или нет?