Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Создание меню для сайта (http://www.flasher.ru/forum/showthread.php?t=199894)

aleas 26.05.2013 16:44

Создание меню для сайта
 
Доброго времени суток! Пожалуйста, подскажите: имеется изображение комнаты (одно в ч\б варианте второе в цветном), необходимо реализовать следующее: пользователь видет ч\б вариант комнаты, наводит на стол\шкаф\тумбочку (какой-то определенный предмет комнаты) и при наведении он становится цветным, затем, он щелкает по предмету и открывается заданная ссылка на конкретный сайт. Вопрос, как это сделать?

ProcXel.A 26.05.2013 17:34

Вырежи цветные объекты. Вставь их в мувиклипы. Разложи на сцене с черно-белой картинкой. Мувиклипам задай visible = false. На мувиклипы повесь слушатели клика, наведения и отведения мыши. И напиши три функции: при наведении делаешь visible = true, при отведении опять visible = false, при клике navigateToURL.

Dukobpa3 26.05.2013 17:42

Смотря насколько круто сделать надо)
Можно как выше говорят.
Можно положить цветную фотку под чб. Чб должна быть предварительно порезана на предметы.
При наведении на предмет - ставить его маской для цветной фотки. таким образом он будет пропадать из дисплей-листа и вместо него будет виден цветной который под ним:).

Можно поизобретать что-то пвеселее по типу распознавания образов.

Добавлено через 2 минуты
А можно использовать только цветную фотку. Которая соответственно порезана. В "спокойном" состоянии навесить фильтр цветокоррекции. При наведении на предмет - фильр снимать.
colormatrixfilter

Zebestov 26.05.2013 17:50

Вот еще вариант.

Каждый объект рисуем в одной картинке (карте) своим цветом (RGB у нас будет представлять ID объекта). Абрисы объектов должны быть с резкими краями — вот и вся ручная подготовка.

В коде:
- иллюстрацию обесцвечиваем и получаем подложку
- при каждом движении мыши смотрим на соответствующий пиксель в карте (getPixel)
- если цвет этого пикселя совпадает с ID одного из объектов, маскируем полноцветную иллюстрацию соответствующим пятном на карте (threshold + copyChannel) для подсветки нужного объекта.

Как-то так.

aleas 26.05.2013 17:50

Огромное спасибо всем! Особо мудрить не придётся, хватит и того, что написал ProcXel.A! Ещё раз всем спасибо! Очень выручили!

Добавлено через 13 часов 56 минут
Не всё так просто, как казалось... Всё сделал, но встал на моменте с слушателями событий...
Цитата:

stol.addEventListener(MouseEvent.MOUSE_MOVE, stol_visible);

function stol_visible (e:MouseEvent):void
{
stol.visible=true;
}

stol.addEventListener(MouseEvent.MOUSE_OUT, stol_visible_2);

function stol_visible_2 (e:MouseEvent):void
{
stol.visible=false;
}
MOUSE_OUT не работает (или я что-то не так делаю) + не знаю, как с самого начала задать у MovieClip visible = false?

Dukobpa3 27.05.2013 11:01

Mouse.ROLL_OVER
Mouse.ROLL_OUT

ну и мувики с visible = false - мышку не видят. Меняй альфу на 0 и 1 соответственно.

aleas 27.05.2013 11:04

То есть, если я вас понял, то так:
Цитата:

stol.addEventListener(MouseEvent.ROLL_OVER, stol_visible);
stol.addEventListener(MouseEvent.ROLL_OUT, stol_visible_2);

function stol_visible (e:MouseEvent):void
{
stol.alpha=100;
}

function stol_visible_2 (e:MouseEvent):void
{
stol.alpha=0;
}
так?

Dukobpa3 27.05.2013 11:12

Я ж не компилятор. Возьми да проверь)

Добавлено через 1 минуту
Только альфа не 100 а 1. Альфа дробями от еиницы ставится.

aleas 27.05.2013 11:36

Слава-слава тебе, великий человек не компилятор! Ты спас меня! Огроменное тебе спасибо, Dukobpa3!

Wolsh 27.05.2013 12:45

aleas, для оформления своего кода надо использовать теги [as3][/as3]


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

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