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

Скрипун 27.08.2007 17:58

Как закодировать цвет?
 
нужно закодировать минимальным количеством знаков цвет:

можно так: #F0000C можно так 15728652... но в итоге все будет строка "F0000C " .. будет сохранятся определенный пиксель. важно размер этой строки.

Возможно закодировать к примеру трема символами? включая спецсимволы.. только чтоб строка была покороче... "*(:"

etc 27.08.2007 18:03

Тремя — легко.

«FFFFFF» = «яяя» в вендовой кодировке.

Скрипун 27.08.2007 18:16

Цитата:

Сообщение от __etc
Тремя — легко.

«FFFFFF» = «яяя» в вендовой кодировке.

;) нескромный вопрос: как?

ПС: я знаю что у каждой буквы есть код от 0 до 256, только как это заюзать?

DnV 27.08.2007 19:36

http://www.flasher.ru/forum/showpost...70&postcount=9
Но не думаю что это короче... ;)

etc 27.08.2007 19:40

DnV, а вы читали эту тему и поняли, что хочет автор?
Скрипун, где-то было, щас навскидку не найду.
Используй String.fromCharCode и т.п.

silin 27.08.2007 19:55

что-то такое у меня выходит..
Код:

function codeColor(n:Number):String{
        var str:String=n.toString(16);
        while(str.length<6)str="0"+str;
        for(var i:Number=0,arr:Array=[];i<3;i++){
                var code:Number=parseInt(str.substr(i*2,2),16)+1;
                var char:String=String.fromCharCode(code);
                arr.push(char);
        }
        return arr.join('');
}

function encodeColor(s:String):Number{
        for(var i:Number=0,arr:Array=[];i<3;i++){
                var code:Number=s.charCodeAt (i)-1;
                var str:String=code.toString(16);
                arr.push(str.length<2 ? "0"+str : str);
        }
        return parseInt(arr.join(''),16);
}

var clr:Number=0xF0000C;
trace(clr);
var cClr:String=codeColor(clr);
trace(cClr);
var eClr:Number=encodeColor(cClr);
trace(eClr);


DnV 28.08.2007 00:40

2 __etc:
Да, я читал тему, и понял, что хочет автор: закодировать цвет тремя буквами.

я знаю что у каждой буквы есть код от 0 до 256, только как это заюзать?
Флеш ессно цвет из букв не нарисует. Я дал линк где описана функция преобразования строки символов в строку из их кодов. Конкретно для цветов (из трёх букв) можно переписать её проще, но принцип тот же.

Или я таки не понял, что хочет автор?

Kikasso 28.08.2007 01:38

Можно вообще одной-двумя буквами обойтись - сколько в уникоде символов?

Wolsh 28.08.2007 01:40

а что мешает закодировать одной буквой юникода вместо трех аский?
------Kikasso опять обогнал :)

Только Скрипуну наверно вес важен на самом деле, а не количество букв :)
и получается что 3 по 8 бит меньше чем одна 32-битная (к тому же флэш по-моему с ними не работает) или две 16-битных.

DnV 28.08.2007 01:53

2 Wolsh, Kikasso:
Одной это как? Не 16 же миллионов символов в юникоде...
Двумя может и поверю, но на практике это как выклядеть будет? Экшенскрипт чтоли юникод кушает?


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

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