Как создавать свои Flash-игры, подобные Angry Birds и World of Goo?
Box2D - это библиотека, которая моделирует физическое поведение твердых тел в двумерном пространстве. Программисты могут использовать ее в своих играх, чтобы сделать...
В программе Adobe Flash при помощи actionscript Вы можете создать более миллиона(!) цветов и оттенков и ежесекундно окрашивать свои произведения в самые разнообразные цвета!
В продолжении серии текстовых уроков сегодня хочу рассказать Вам, как происходит кодирование / задание / управление цветом в этой программе.
В статье уроке содержаться подробные описания + динамические flash модели, задача которых вдохновить(!) и облегчить понимание.
Но перейдем к сути..
Запись любого цвета в Adobe Flash осуществляется при помощи модели RGB, где R – красный, G – зеленый, B – синий. Смешивая эти три цвета в разных пропорциях можно получить любой цвет и оттенок.
Например, белый цвет в модели RGB будет записан, как FFFFFF
R = FF
G = FF
B = FF
Черный цвет будет записан, как 000000
R = 00
G = 00
B = 00
Как видите, любой цвет записывается мс помощью трех чисел записанных в шестнадцатеричной системе исчисления.
Здесь в основном и возникает непонимание, потому что в основном все привыкли к десятичной системе исчисления, которую все люди используют в повседневном обиходе.
Про шестнадцатеричную систему исчисления никто и не помнит, а если помнит, то смутно…
Поэтому давайте ненадолго остановимся на теории и объясним, что же такое шестнадцатеричная система исчисления?
В повседневной жизни мы пользуемся десятичной системой исчислении - последовательностью цифр от нуля до девяти:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
…..
В десятичной системе исчисления для записи любых чисел применяется десять цифр. Все прочие числа (28; 3467; 439) можно записать в виде комбинации этих десяти.
Шестнадцатеричная система это точно такая же последовательность, только здесь для записи чисел применяется не только цифры от 0 до 9, но еще и прописные буквы от A до F .
0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
…...
Записанное в шестнадцатеричной системе число 0 соответствует десятичному 0, а шестнадцатеричное число F – десятичному 16.
Максимальное число, которое может быть в этой системе это FF – десятичное 255.
Просто? Думаю, да.
Итак, вы поняли, что кодирование любого цвета в Adobe Flash осуществляется при помощи RGB кода состоявшего из трех цифр записанных в шестнадцатеричной форме.
Вот вам простая flash модель для демонстрации:
С теорией на этом все, перейдем к практике – выполним несколько простых упражнений.
Давайте программе Adobe Flash создайте новый файл, нарисуем простой черный прямоугольник и превратим его в фрагмент ролика с именем - shirt_mc.
После этого в панель действий внесите такой скрипит:
var myColor:Color = new Color (shirt_mc);
myColor.setRGB(0xFF3300)
Не получилось? Смотрите серию видео уроков «Азы ActionScript»
После нажмите CTRL+ENTER, и вуаля черный квадрат стал красным!
Приведенный скрипит, создает новый объект класса Color с именем myColor, а затем используя метод setRGB(), цвет фрагмента ролика изменяется на красный. Метод setRGB() имеет параметр 0x – комбинация символов, которая указывает Adobe Flash, что здесь следует шестнадцатеричное число. FF3300- запись красного цвета в шестнадцатеричном виде.
Вот еще одна моделька, здесь просто задавайте шестнадцатеричный код цвета и круг окрасится в заданный вами цвет.
Если с фиксированным заданием цвета все понятно, то едем далее. Чуть усложним…
Давайте программе Adobe Flash создайте новый файл, нарисуем круг и превратим его в фрагмент ролика с именем – colorCirle_mc
После этого в панель действий внесите такой скрипит:
_root.onEnterFrame = function() {
var R:Number = random(256);
var G:Number = random(256);
var B:Number = random(256);var colorHexString:String = R.toString(16) + G.toString(16) + B.toString(16);
var colorHex:Number = parseInt(colorHexString,16);var color:Color = new Color(colorCirle_mc);
color.setRGB(colorHex);
}
После нажмите CTRL+ENTER, и вуаля наш круг меняет свой цвет случайным образом!
Не получилось? Смотрите серию видео уроков «Азы ActionScript»
Пояснения работы actionscript:
Итак, в первых трех строках скипта создаются переменные R, G, B - которые получают случайные значения в диапазоне от 0 до 255. (Их генерирует метод math.random(), если хотите узнать, как он работает этот метод, то смотрите сюда)
В следующей строке применен метод toString() класса Number – для преобразования десятичного числа в шестнадцатеричное.
После этого полученные шестнадцатеричные числа складываются в единую символьную строку – код случайного цвета.
Но что бы можно было использовать данный код, его изсимвольной строки нужно преобразовать в шестнадцатеричное число, что бы использовать как параметр метода setRGB(). Для этого как видете применена функция parseInt().
В последних двух строках скрипта создается новый объект класса Color? Связанный с нашим фрагментом ролика – кругом - colorCirle_mc, а потом применяется цвет, закодированный созданным нами случайным числом.
Ну вот и все про управление / заданеи цвета в actionscript
Надеюсь было легко!
... ну и напоследок небольшой креативный примерчик того, как это можно использовать в своих работах
До скорых встреч он-лайн.
С уважением,
Виталий Кузьменко.
PS: Скачать fla исходники примеров:
[attachment=16]
[attachment=17]
[attachment=18]
Скачать видео урок:
Комментарии
это action script 2.0 ?