PDA

Просмотр полной версии : Выделение определенных элементов при наведении


evgen_triplex
23.10.2009, 12:25
Столкнулся с проблемой, подтолкните на мысль плз :confused:

Некоторое кол-во кубиков вызываются из библиотеки, образуя блок. Каждому присваивается свое имя. Существует текстовый файл, из которого в массив загружаются данные о цвете каждого из кубиков. В общем, вот такой код:

var i:Number = 0;
var q:Number = 60;//общее количество в блоке (6 строк)
var n:Number = 10;//количество в строчке
var margin:Number = 6;//отступ
//
var loader:LoadVars = new LoadVars();
loader.onLoad = function(success:Boolean):Void {
if (success) {
colorArray = loader.tint.split(";");
trace(colorArray);
} else {
trace("---");
}
};
loader.load("tint.txt");

while (i++<q) {
attachMovie('cub','cub_'+i,i);
var my_color:Color = new Color(['cub_'+i]);
my_color.setRGB(colorArray[i-1]);
if (i<=n) {///////////////////////////первая строка
this['cub_'+i]._x = i*margin;
this['cub_'+i]._y = margin*0;
} else if (i>n && i<=n*2) {///////////вторая строка
this['cub_'+i]._x = (i-n)*margin;
this['cub_'+i]._y = margin;
} else if (i>n*2 && i<=n*3) {/////////третья строка
this['cub_'+i]._x = (i-n*2)*margin;
this['cub_'+i]._y = margin*2;
} else if (i>n*3 && i<=n*4) {/////////четвертая строка
this['cub_'+i]._x = (i-n*3)*margin;
this['cub_'+i]._y = margin*3;
} else if (i>n*4 && i<=n*5) {/////////пятая строка
this['cub_'+i]._x = (i-n*4)*margin;
this['cub_'+i]._y = margin*4;
} else if (i>n*5 && i<=n*6) {/////////шестая строка
this['cub_'+i]._x = (i-n*5)*margin;
this['cub_'+i]._y = margin*5;
}
}

моя проблема - чтоб при наведении на один из кубиков, (каким-то образом, допустим подсвечивались бы) выделялись остальные такого же цвета...
Приложил исходник на всякий пожарный

alexcon314
23.10.2009, 13:03
В клипе кубика сделать клип бордер (border) и функцию изменения его цвета, как менять цвет - тут возможны варианты. функцию обозвать, скажем light(isLight:Boolean)
Далее, в вашем цикле поставить на кждый куб обработчик onRollOver и onRollOut. в этом обработчике пробегать в циклк по кубам и в зависимости от цвета куба вызывать в кубах метод light(true)/light(false);
Ну, или писать классы для кубов, организовать систему рассылки событий в духе "подсветись" или "потухни". Вобщем, варианты есть.

evgen_triplex
26.10.2009, 08:43
Спасибо за ответ, буду думать