Суббота, 20.04.2024, 08:16Главная | Регистрация | Вход

Меню сайта

Точное время

Опрос Сайта

Как вы нашли мой Форум?
Всего ответов: 39

Поиск

Делаем рисовалку граффити! - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Smitg9  
Форум » Флеш » Flash програмирование » Делаем рисовалку граффити! (Эффект спрея)
Делаем рисовалку граффити!
Smitg9Дата: Вторник, 26.01.2010, 17:57 | Сообщение # 1
Подполковник
Группа: Администраторы
Сообщений: 109
Награды: 1
Репутация: 51
Статус: Offline



В этом уроке я покажу вам как создать эффект спрея во Flash. Вы можете проверить мувик выше и посмотреть, как это выглядит. Изменяйте цвет, плотность и размер спрея, чтобы увидеть изменения эффекта. Давайте начнем прямо сейчас.

Настройка окружения

1. Создайте новый доекумент размером 400x400.

2. Импортируйте картинку на сцену. Проверьте, чтобы ее размер был 400x300.

3. Расположите картинку в левый верхний угол.

4. Конвертируйте картинку в муви клип. Назовите его "imageMC" и установите точку регистрации в центре.

5. Дайте картинке instance name = "drawingArea".

6. Откройте вашу библиотеку компонент (Ctrl + F7). Перетащите один слайдер на сцену. Расположите его там, где хотите.

Эффект спрея (Action Script3)

7.Дайте слайдеру имя instance name="sizeSlider". Примените следующие установки.

Эффект спрея (Action Script3)

8. Перетащите другой слайдер на сцену.

9. Дайте ему instance name = "densitySlider". Примените следующие установки.

Эффект спрея (Action Script3)

10. Перетащите color picker на сцену. Дайте ему instance name = "myColorPicker".
Идем в Actionscript

11. Откройте панель actions и напишите следующее.
Code

/*
Нам необходимо создать объект BitmapData, чтобы работать с пикселами объекта  Bitmap
Мы хотим, чтобы wallCanvas был прозрачным вначале,
вот почему мы используем значение 0x00ffffff как  параметр
*/
var wallCanvas:BitmapData  = new BitmapData(stage.stageWidth,
stage.stageHeight - 100,
true, 0x00ffffff);

//Создадим объект Bitmap чтобы ссылаться на объект  BitmapData
var bitmap:Bitmap = new Bitmap(wallCanvas);

//Добавим витмап на сцену
addChild (bitmap);

//Мы слушаем событие mouse down на стене
drawingArea.addEventListener (MouseEvent.MOUSE_DOWN, mouseDownHandler);

//Мы слушаем событие  mouse up для всей сцены
stage.addEventListener (MouseEvent.MOUSE_UP, mouseUpHandler);

//Это цвет спрея
var color:uint;

//Это максимальный радиус спрея
var maxRadius:Number;

//Это плотность спрея
var density:Number;

//Это вызывается, когда мышь нажимается на стене
function mouseDownHandler (event:MouseEvent):void {
//Добавляем ENTER_FRAME, чтобы мы могли рисовать в каждом фрейме
addEventListener (Event.ENTER_FRAME, onEnterFrame);
}

//Это вызывается, когда мышь отжимается
function mouseUpHandler (event:MouseEvent):void {
//У нас нет необходимости в  ENTER_FRAME, если мышь отжата (ничего не рисуется)
removeEventListener (Event.ENTER_FRAME, onEnterFrame);
}

//Эта функция отвечает за все рисование
function onEnterFrame (event:Event):void {

//Получим размер из  sizeSlider
maxRadius = sizeSlider.value;

/*
Получим цвет из  myColorPicker.
Мы добавим 0xff000000 к цвету, чтобы сделать пиксел
видимым когда мы рисуем его (мы рисуем пиксел в цикле).
*/
color = myColorPicker.selectedColor + 0xff000000;

//Получим плотность из densitySlider
density = densitySlider.value;

/*
Плотность определяет, сколько циклов мы имеем.
Другими словами, сколько пикселей рисуется в каждом фрейме.
*/
for (var i:int = 0; i < density; i++) {
   
  //Вычисляем рандомный угол
  var angle:Number = Math.random() * Math.PI * 2;
   
  // Вычисляем рандомный радиус для отрисовки пиксела
  var radius:Number = Math.random() * maxRadius;
   
  //Вычисляем координаты по  x и y
  var xPos:Number = mouseX + Math.cos(angle) * radius;
  var yPos:Number = mouseY + Math.sin(angle) * radius;
   
  //Рисуем пиксел.
  wallCanvas.setPixel32 (xPos, yPos, color);
}
}

Вы закончили,протесстируйте ваш мувик!

 
Форум » Флеш » Flash програмирование » Делаем рисовалку граффити! (Эффект спрея)
  • Страница 1 из 1
  • 1
Поиск:

portofollo.at.ua | Хостинг от uCoz