Урок: Отбеливаем кролика с помощью As3

1. Размещаем  на нижнем слое черного кролика, слоем выше – белого. Кролики абсолютно одинаковые, отличаются лишь цветом.

 

Обязательно  нужно наложить объекты аккуратно друг на друга, пиксель в пиксель (для этих целей пользуемся  инструментом выравнивания (Align)).

 

2. Белого кролика сохраняем в символ (F8) и даем ему имя Instance name - Rabbit.

 

3. Создаем новый слой, в который вставляем код (F9):

var container:Sprite = new Sprite();

addChild (container);

Rabbit.mask = container;

container.graphics.moveTo (mouseX, mouseY);

 addEventListener (Event.ENTER_FRAME, enterFrameHandler);

 function enterFrameHandler (e:Event):void {

               container.graphics.beginFill(0xff00ff);

               container.graphics.drawCircle(mouseX-50, mouseY-50, 20);

               container.graphics.endFill();

}

 Mouse.hide();

 Все готово, тестируем (кликнуть для активации в опере).

Вместо круглой маски можно использовать, например, квадратную. В таком случае

вместо:

container.graphics.drawCircle(mouseX-50, mouseY-50, 20);

пишем:

container.graphics.drawRect(mouseX-0, mouseY-0, 0, 0); (вместо 0 – нужное значение) 

Эффект можно использовать  в баннерах (например, превращать зиму в лето:)

Скачать исходник

Источник

Комментарии
Аватар пользователя Ales Kin

А как оленя висящего как у вас сверху сделать? прикольно:)

Аватар пользователя Ales Kin

Спасибо автор! Респект! Очень круто,все с первого раза вышло.

Аватар пользователя OlegGreen

А как сделать, например, переход на другой кадр, если весь кролик уже отбелен?

Аватар пользователя Адова Юлия

Спасибо за урок! На основе его придумала свой вариант. У меня получилось превращение брюнетки в блондинку Smile
https://vk.com/away.php?to=http%3A%2F%2Fmegaswf.com%2Fs%2F2661045&post=2...

Аватар пользователя Vitaly

Oksana, подскажи пожалуйста, как сделать баннер с таким эффектом ещё и кликабельным.
Заранее спасибо!

Аватар пользователя Oksana

Виталий, посмотрите здесь

Аватар пользователя AlexS

подскажите!
а что нужно прописать в коде, чтобы курсор был виден?
спасибо)

Аватар пользователя Oksana

попробуйте удалить из кода

Mouse.hide()

Аватар пользователя AlexS

только я сделал Mouse.show() и изменил позицию XY
супер сейчас!
спасибо за подсказку! Wink

Аватар пользователя vizgl

Сразу подумал, что пост о смешивании двух клипов по маске в Flash IDE(если бы было такое Smile). Но потом увидел код...

Аватар пользователя Wapifz

Как AS 3.0 программист, я бы не советовал использовать Event.ENTER_FRAME, в данном случае, можно использовать и MouseEvent.MOUSE_MOVE. т.к при ENTER_FRAME событие функция запускается на каждои кадре (а их обычно 24 в секунду)
А при MOUSE_MOVE, только тогда, когда пользователь движет мышкой.

А так, очень даже интересный эффект. И вместо квадратика или кружочка на маске, можно использовать любой мувик, если его импортировать в код Wink

Аватар пользователя AlexS

подскажите!
а что нужно прописать в коде, чтобы курсор был виден?
спасибо)

Аватар пользователя Nikolai Pankin

а если использовать MOUSE_DOWN то получится, что то типо раскраски Smile

Аватар пользователя Oksana

я в процессе изучения as, поэтому мне это все сложновато понимать. но все равно спасибо за уточнение)

Аватар пользователя Antony Beck

Классненько =)
А подскажи как сделать такоен: есть персонаж и каталог одежды разной, и надо чтобы кликом мыши по вещи примерять ему одежду, чтоб по клику одежда была строго на персонаже, ну на голове или на теле и ногах!!! Как такое сделать?

Аватар пользователя Oksana

постараюсь разобраться и написать в ближайшее время

Аватар пользователя Antony Beck

Ооо, Огомное спасибо!! Будет очень здорово =)

Аватар пользователя Андрей

Да полезно. Если поиграться с GradientFill и cacheAsBitmap можно кисточку сделать мягче.

Аватар пользователя Дмитрий

полагаю не
Rabbit mask = container;
а
Rabbit.mask = container;

Аватар пользователя Oksana

да,спасибо.поправила

Пожалуйста, оставьте ваш комментарий. Спасибо!
Содержимое этого поля является приватным и не будет отображаться публично.
CAPTCHA
Вопрос для проверки
Заполните поле проверки