![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2011
Сообщений: 6
|
Здравствуйте.
Например есть картинка png на которой изображен чёрный треугольник. Остальные области прозрачные. Нужно отобразить картинку в alpha=0.5 а при наводе курсора на треугольник сделать alpha=1 Так вот проблема собственно в чём. Если отлавливать mouseOver то треугольник становится чёрным когда наводят только на прозрачную часть картинки. А нужно чтоб становился при наводе на сам треугольник... Есть варианты как это сделать по проще? Новичёк ещё во флеше... |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Для таких целей изобретен класс InteractivePNG
Используется просто. Вместо того, чтобы создавать экземпляр Sprite или MovieClip и добавлять в них картинку, создаем экземпляр InteractivePNG и добавляем картунку в него. |
|
|||||
|
|
|
|||||
|
А не слишком ли "дорогие" в плане производительности эти решения? В одном ентерфрейм, в другом отрисовка по мышиному событию.
Может отрисовать по пнг-ешке слой с прозрачностью 0.01, положить сверху пнг-шки в интерактивном объекте, а на него уже слушатель повесить? |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Если много то я бы лучше getPixel32() заюзал |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 6
|
Встретил вот такую штуку:
http://www.senocular.com/demo/Transf...sformTool.html Это трансформер изображений. Там как я понял flash+AS3 Так вот там клик по картинке срабатывает именно если кликнуть по картинке, а не по прозрачной области. Этого там добились благодаря флэшу? я его просто не учил пока, не знаю как он работает =) Да и вообще извращениями занимаюсь, пишу всё gedit и компилирую в консоле под линуксом ) Добавлено через 5 часов 24 минуты Вобщем сделал вот так: =) Всем спасибо. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" > <mx:Script> <![CDATA[ import flash.events.MouseEvent; import mx.controls.Image; import flash.display.BitmapData; import flash.geom.Point; private function fn(event:MouseEvent):void{ var obj:Image=(event.currentTarget as Image); var bmapData:BitmapData = new BitmapData(obj.width, obj.height, true, 0x00000000); bmapData.draw(obj); var point:Point=new Point(event.localX,event.localY); var returnVal:Boolean = bmapData.hitTest(new Point(0,0), 0, point); bmapData.dispose(); if(returnVal){ obj.alpha=1; } else{ obj.alpha=0.5; } } ]]> </mx:Script> <mx:Image id="im1" source="img.png" alpha="0.5" mouseMove="fn(event)" mouseOut="{im1.alpha=0.5;}" /> </mx:Application> Последний раз редактировалось RigiyTip; 28.11.2011 в 04:34. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|