Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.10.2006, 18:06
Stashnyi Glyuk вне форума Посмотреть профиль Отправить личное сообщение для Stashnyi Glyuk Найти все сообщения от Stashnyi Glyuk
  № 1  
Ответить с цитированием
Stashnyi Glyuk

Регистрация: Nov 2005
Сообщений: 19
По умолчанию Цвет из шестнадцатерички

Народ, подскажите пожалуйста, как достать соотношение цветов из шестнадцатеричной строки:
например: 0x00FF00 - это: красного - 0; зеленого - 255; синего - 0
Внести, я так понимаю, можно только setTransform'ом?

Старый 23.10.2006, 18:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
col = 0x00FF00;
r = ((col >> 16) & 0xFF);
g = ((col >> 8) & 0xFF);
b = (col & 0xFF);
trace (r + " " + g + " " + b);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 23.10.2006, 18:11
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Зачем? 255 = FF в шестнадцатиричной системе. 00 = 0, соответственно.
Разбей на группы по два символа, переведи из 16-ричной в десятичную, вот тебе и соотношения. (перевод из шестнадцатиричной в примитиве — Number('0x'+str); где str = '3A' например)

Старый 23.10.2006, 19:14
Stashnyi Glyuk вне форума Посмотреть профиль Отправить личное сообщение для Stashnyi Glyuk Найти все сообщения от Stashnyi Glyuk
  № 4  
Ответить с цитированием
Stashnyi Glyuk

Регистрация: Nov 2005
Сообщений: 19
Огроменный сенкс iNils.
Респект и уважуха
Только 1 вопрос: как ты высчитал что (col >> 8)?


Последний раз редактировалось Stashnyi Glyuk; 23.10.2006 в 19:23.
Старый 23.10.2006, 20:42
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 5  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
А мне так всегда нравилось:
Код:
col = 0x00FF00;
r = col >> 16;
g = (col >> 8)-(r << 8);
b = col-(r << 16)-(g << 8);
trace(r+":"+g+":"+b);
__________________
Верить никому нельзя. Мне - можно. :)

Старый 24.10.2006, 07:13
Stashnyi Glyuk вне форума Посмотреть профиль Отправить личное сообщение для Stashnyi Glyuk Найти все сообщения от Stashnyi Glyuk
  № 6  
Ответить с цитированием
Stashnyi Glyuk

Регистрация: Nov 2005
Сообщений: 19
Ну объясните, как вы высчитываете числа 8, 16, 0xFF
Вот вы все говорите, что правилами запрещено просить, чтобы что-то сделали за тебя, а сами объяснить можете откуда это берется?

Старый 24.10.2006, 08:13
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
>> - это побитовое смещение вправо. Указывая 16 и 8 мы сдвигаем число на нужное количество битов.
0x00FF00 в двоичном представлении это 0000 0000 1111 1111 0000 0000, сдвинули на 16 бит вправо у нас осталось только 0000 0000, так мы получили значение красного цвета.
Для получения зеленого мы сдвигаем на 8 бит право, и у нас остается 0000 0000 1111 1111, но нам нужно избавится от лишних битов слева. И поэтому мы применяем побитовое И для 0xFF или как предложил Dendroid сдвигаем красный цвет влево на 8 бит и вычитаем получившиеся значение из текущего зеленого.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 24.10.2006, 11:07
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
По теме:
http://livedocs.macromedia.com/flash.../00001801.html
http://livedocs.macromedia.com/flash.../00001808.html
http://livedocs.macromedia.com/flash.../00001803.html

Старый 02.11.2011, 20:04
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 9  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Цитата:
Сообщение от iNils Посмотреть сообщение
>> - это побитовое смещение вправо. Указывая 16 и 8 мы сдвигаем число на нужное количество битов.
0x00FF00 в двоичном представлении это 0000 0000 1111 1111 0000 0000, сдвинули на 16 бит вправо у нас осталось только 0000 0000, так мы получили значение красного цвета.
Для получения зеленого мы сдвигаем на 8 бит право, и у нас остается 0000 0000 1111 1111, но нам нужно избавится от лишних битов слева. И поэтому мы применяем побитовое И для 0xFF или как предложил Dendroid сдвигаем красный цвет влево на 8 бит и вычитаем получившиеся значение из текущего зеленого.
Я так и не догнал, после того как мы применили побитовый сдвиг вправо для зеленого цвета, как операция побитовое и избавляет от лишних битов?

Пример:

Код AS1/AS2:
0000 0000 1111 1111
1111 1111 1111 1111 
---------------------
0000 0000 1111 1111
нули так и остались слева


Последний раз редактировалось goldlider; 02.11.2011 в 20:07.
Старый 02.11.2011, 21:58
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 10  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
нули так и остались слева
давно ли нули слева читаются? Если я напишу 24 как 000024, то это уже не 24 будет что ли

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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