Интересный урок, искал давно как сделать такой эффект во Flash'e. И вот нашел, правда у автора кода были ошибки, поэтому я не буду ставить ссылку на его ресурс, поскольку переделал все сам заново.
Итак, поехали
1. Размер нашего файла 500pt х 500pt 2. Вставляем на главную сцену, в первый кадр, в 1 слой (называем слой "Фон") картинку, размером 500pt x 500pt.
3. Конвертируем в Мувик, Insert / New Symbol 
4. Где "Name" у нас "Мувик", а "Type" у нас "Movie clip". "Regestration" смещаем в лево-вверх, как на картинке. 
5. "Instance Name" этого мувика именуем "ms".  6. Создаем второй слой на главной сцене, называем его "Лупа". Этот слой будет выше чем слой "Фон".
7. Создаем новый Мувик, Insert / New Symbol  8. Где "Name" у нас "Лупа", а "Type" у нас "Movie clip". "Regestration" по центру.
9. "Instance Name" этого мувика именуем "zoom".
10. Двойным щелчком нажимаем на "Лупу" и попадаем внутрь. Создаем там три слоя.
Первый "Лупа". Второй "Маска". Третий "Фон".
11. В слое "Лупа" рисуем саму лупу с прозрачным стеклом, 
нажимаем правой кнопкой и конвертируем ее в Convert to Symbol. 
Называем его "Рисунок" и ставим "type" галку на "Graphic", "Regestration" по центру.
12. В слое "Маска" рисуем само стекло (круглешок), любого цвета и подставляем его ровно там, где у нас прозрачное стекло.

13. В слое "Фон" ставим тот самы рисунок, который у нас на главной странице, со всеми его параметрами. "Name" "Type" "Regestration" "Instance Name"... Просто капируем из главной сцены и вствляем сюда, в слой "Фон", только чтоб левый верхний угол этого мувика был ровно по середине "Лупы". 14. Нажать в слое "Маск" правой кнопкой и поставить галочку Mask. 
15. Возвращаемся на главную сцену и добавляем еще один слой, называем его ActionScript. В первом кадре ставим такой скрипт (вызвав панель Акшин F9): 
Пише: Mouse.hide(); 16. Нажимаем на лупу, которая находиться на главной сцене и ставим на нее такой код (вызвав панель Акшин F9): 
onClipEvent (load) { n = 1; w = _width; h = _height; lupa_radius = (54/4); smeshenie_po_x = (1000-w)/2; smeshenie_po_y = (1000-h)/2; } onClipEvent (mouseMove) { xm = _root._xmouse; ym = _root._ymouse; _x = xm; _y = ym; ms._x = -xm; ms._y = -ym; updateAfterEvent(); } onClipEvent (enterFrame) { if (md) { if (n<3) { n += 0.25; } } if (md == 0) { if (n>1.5) { n -= 0.25; } } _xscale = 100*n; _yscale = 100*n; } onClipEvent (mouseDown) { md = 1; } onClipEvent (mouseUp) { md = 0; }
Вот апринципе и все. Тестируем и радуемся! Исходник урока здесь >>>
|