Форум 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=137262)

Dragon rideR 09.03.2010 14:10

Подскажите алгоритм создания палитры цветов
 
Подскажите алгоритм создания палитры цветов для колорпикера. Нужно в одном клипе рядом разместить около 100 различных цветов

in4core 09.03.2010 14:18

Алгоритмов наверное много. Ну попробую описать как бы делал я.
Скорее всего циклом разместил бы цвета, через duplicate клип, чтобы вся коробка цветов была из мувиклипов. Ну а потом события поствить типа
Код AS1/AS2:

 if(firstColor) { col=0xFF0000}

. Ну а там уже при нажатии на клип у которого хотим изменить цвет использовать setRGB методы.

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

Psycho Tiger 09.03.2010 14:33

Да, через BitmapData.
Код AS3:

var col:Number=0x000000;
var step:Number=0x000020;
while (col<0xFFFFFF){
col+=step;
trace(col);
}

и рисуем квадратик в битмап дату, а цвет потом оттуда берём через getPixel

samana 09.03.2010 15:27

Вложений: 1
Действительно лучше через битмап. Можно нарисовать палитру какую тебе надо, потом перевести её в битмап, и с неё уже брать цвета.
1) сделай клип палитру, (palitra) можно прямоугольником и например залей его градиентом (всеми цветами). Только точку трансформации вверху слева.
2) создай клип (clip), цвет которого будет изменятся.
3) код:
Код AS1/AS2:

import flash.display.BitmapData;
//создаем битмапу с размерами как и палитра
var bm:BitmapData = new BitmapData(palitra._width, palitra._height, false, 0x000000);
//в битмапе рисуется палитра
bm.draw(palitra);
//к палитре прикрепляем битмапу
palitra.attachBitmap(bm,1);
//color что бы именять цвет клипа
var color:Color = new Color(clip);
//и при клике на палитре
palitra.onPress = function() {
        //определяем цвет пиксела под курсором
        var temp = "0x" + bm.getPixel(_xmouse - this._x, _ymouse - this._y).toString(16);
        //назначаем цвету
        color.setRGB(temp);
};



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

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