Просмотр полной версии : определить что на кнопку навели курсор
Приветствую
у меня есть много кнопок, когда курсор наводится на любую из них, кнопка становится больше, а остальные кнопки тускнеют
сделал в лоб - для каждой кнопки свой код:
on(rollOver)
{
for (i = 1; i <= 7; ++ i)
{
if (i != 1)
{
this["video_cable_" + i]._alpha = 50;
}
}
}
on(rollOut)
{
for (i = 1; i <= 7; ++ i)
{
this["video_cable_" + i]._alpha = 100;
}
}
но такой подход мне не нравится, мне хотелось бы вынести код выше, поскольку для всех кнопок он одинаковый за исключением ID кнопки
как это сделать? т.е. как определить в том же for что на кнопку с таким-то id навели курсор или наоборот убрали
Fernando Costa
11.01.2008, 14:46
for(i=0;i<10;i++){
this['bt'+i].onRollOver = function(){
trace(this)
}
}
Волгоградец
11.01.2008, 14:49
Надо создать 5 кнопок с именами but1, but2...
for (var i:Number = 1, i <= 5, i ++){
this["but" + i].onRollOver = function (){
trace ("12345")
}
}
Опередили...
т.е. я так понимаю что все сводится к созданию функций для кнопок?
а стоит ли их где-то потом удалять?
Волгоградец
11.01.2008, 14:54
Да, получается, что мы перебираем все кнопки - и для каждой создаем функцию. Функцию удалять не надо.
поставил такой код (удалив код на кнопках)
for (i = 1; i <= 7; ++ i)
{
this["video_cable_" + i].onRollOver = function ()
{
for (i = 1; i <= 7; ++ i)
{
if (i != 1)
{
this["video_cable_" + i]._alpha = 50;
}
}
}
this["video_cable_" + i].onRollOut = function ()
{
for (i = 1; i <= 7; ++ i)
{
this["video_cable_" + i]._alpha = 100;
}
}
}
почему-то перестало работать
т.е. ошибок не выдает но и эффекта 0
Fernando Costa
11.01.2008, 15:01
в таких случаях проставьте трейсы, и поймете что у вас проблемы с областью видимости.
Сейчас вы пытаетесь альфу поменять 7 мувикам вложенным в ваш ["video_cable_" + i]
да, что-то я намудрил - переписал код так
function ShowSelectedVideoCable(nSelectedCable:Number)
{
trace(nSelectedCable);
for (j = 1; j <= 7; ++ j)
{
if (j != nSelectedCable)
{
this["video_cable_" + j]._alpha = 50;
}
}
}
function ShowAllVideoCables()
{
for (j = 1; j <= 7; ++ j)
{
this["video_cable_" + j]._alpha = 100;
}
}
for (i = 1; i <= 7; ++ i)
{
this["video_cable_" + i].onRollOver = function(){ShowSelectedVideoCable(i)};
this["video_cable_" + i].onRollOut = function(){ShowAllVideoCables()};
}
работает - но trace выдет 8, причем не важно на какую я кнопку навел 1,2,3 и т.д.
вот это я понять не могу :-(
ОТКУДА!!!?
Волгоградец
11.01.2008, 15:12
for (var i:Number = 1, i <= 5, i ++){
this["but" + i].onRollOver = function (){
this["video_cable_" + i]._alpha = 50;
}
this["but" + i].onRollOut= function (){
this["video_cable_" + i]._alpha = 100;
}
}
Волгоградец
нет , этот код вообще не работает
мне нужно при наводе на кнопку сделать полупрозрачными все кнопки кроме наведенной
а при отводе вернуть все на место
Fernando Costa
11.01.2008, 15:26
function ShowSelectedVideoCable(nSelectedCable:Number)
{
trace(nSelectedCable);
for (j = 1; j <= 7; ++ j)
{
if (j != nSelectedCable)
{
this["video_cable_" + j]._alpha = 50;
}
}
}
function ShowAllVideoCables()
{
for (j = 1; j <= 7; ++ j)
{
this["video_cable_" + j]._alpha = 100;
}
}
for (i = 1; i <= 7; ++ i)
{ this["video_cable_" + i].index = i
this["video_cable_" + i].onRollOver = function(){ShowSelectedVideoCable(this.index)};
this["video_cable_" + i].onRollOut = function(){ShowAllVideoCables()};
}
Ура, заработало, спасибки
а почему так?
обязательно ли добавлять этот Index?
Fernando Costa
11.01.2008, 15:44
в данном случае да, хотя конечно можно и по-другому.
ЗЫ: index - просто переменная
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.