Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Выделение определенных элементов при наведении (http://www.flasher.ru/forum/showthread.php?t=131555)

evgen_triplex 23.10.2009 12:25

Выделение определенных элементов при наведении
 
Вложений: 1
Столкнулся с проблемой, подтолкните на мысль плз :confused:

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

Код AS1/AS2:

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

Спасибо за ответ, буду думать


Часовой пояс GMT +4, время: 16:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.