|
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
Работа с маской
Здравствуйте, подозреваю, что над моим вопросом тут все будут долго ржать, но все же)
Очень нужна помощь знающих людей. Итак, есть прямоугольная шапка сайта, на которой изображены 3 объекта, шапка представляет собой один jpg-файл (рис.1) При наведении мыши на один из этих трех объектов, должен показываться фрагмент из рис.2, т.е. перекрывать его, при этом соседствующие элементы остаются как есть. В итоге есть два jpg-файла, и три области при наведении мыши к которым область одного рисунка должна заменяться другим файлом. Как сделать - не знаю, подскажите кто-нибудь.
__________________
X/2/CoM |
|
|||||
А вам обязательно на AS2 надо сделать? Или можно на AS3?
|
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
TWETTI, на самом деле не принципиально, можно и на AS3
__________________
X/2/CoM |
|
|||||
Вот так?
|
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
TWETTI, да, то, что нужно) Счастье-то какое!
Добавлено через 2 минуты samana, полагаете, что так проще? Смысл такого разбиения в чем? Пример с квадратами и кругами я дал для наглядности, чтоб меня правильно поняли. На самом деле там сложные графические объекты, резать это на куски на мой взгляд бессмысленно. Однако, спасибо за совет. Добавлено через 26 минут TWETTI, кодом поделитесь?
__________________
X/2/CoM |
|
|||||
Я код написал только для кружочков и квадратиков. Его не получится использовать с другими картинками. Я просто разрезал картинку с кружочками.
Последний раз редактировалось TWETTI; 27.09.2010 в 01:02. |
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
TWETTI, а. Не самый удобный вариант, но жизнеспособный, могу и порезать свое) Поделитесь пожалуйста, а от завтра это уже "жить должно" в сети)
__________________
X/2/CoM |
|
|||||
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class Main extends Sprite { private var currentImage:int; private var loader:Loader; private var image_normal:Bitmap; private var image_over:Bitmap; private var Circle1:Bitmap = new Bitmap(new BitmapData(200, 400, true, 0xFFFFFFFF)); private var Circle2:Bitmap = new Bitmap(new BitmapData(200, 400, true, 0xFFFFFFFF)); private var Circle3:Bitmap = new Bitmap(new BitmapData(200, 400, true, 0xFFFFFFFF)); public function Main():void { loadImages(); } private function loadImages():void { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad); currentImage = 1; loader.load(new URLRequest("1.gif")); } private function onLoad(e:Event):void { if (currentImage == 1) { image_normal = e.target.content as Bitmap; currentImage = 2; loader.load(new URLRequest("2.gif")); } else if (currentImage == 2) { image_over = e.target.content as Bitmap; addChild(image_normal); Circle1.bitmapData.copyPixels(image_over.bitmapData, new Rectangle(0, 0, 200, 400), new Point(0, 0)); Circle2.bitmapData.copyPixels(image_over.bitmapData, new Rectangle(200, 0, 200, 400), new Point(0, 0)); Circle3.bitmapData.copyPixels(image_over.bitmapData, new Rectangle(400, 0, 200, 400), new Point(0, 0)); Circle1.x = 0; Circle2.x = 200; Circle3.x = 400; Circle1.visible = false; Circle2.visible = false; Circle3.visible = false; addChild(Circle1); addChild(Circle2); addChild(Circle3); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoad); loader = null; stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); } } private function onMouseMove(e:MouseEvent):void { if (image_normal.bitmapData.getPixel(mouseX, mouseY) == 10552365) { Circle1.visible = true; } else if (image_normal.bitmapData.getPixel(mouseX, mouseY) == 10704030) { Circle2.visible = true; } else if (image_normal.bitmapData.getPixel(mouseX, mouseY) == 35237) { Circle3.visible = true; } else { Circle1.visible = false; Circle2.visible = false; Circle3.visible = false; } } } } |
|
|||||
Регистрация: Dec 2003
Адрес: Нижний Новгород
Сообщений: 121
|
TWETTI, спасибо, но мне капец) Я в жизни в этом не разберусь... Можно fla? Хоть потыкаю, попробую...
Добавлено через 5 минут Блин, начал разбираться с кодом, в приведенном коде квадраты рисуются программно, т.е. для моего случая он не подойдет. мне растр нужно заменять растром((
__________________
X/2/CoM |
Часовой пояс GMT +4, время: 18:58. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|