![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 211
|
даже не знаю, как сформулировать запрос в гугле или тут в поиске , посему пардон, если бабаян.
есть 2 спрайта-контейнеры, куда подгружаются текстуры неправильной формы с прозрачностью. Для простоты понимания возьмем ромбы, у них углы будут прозрачные. Так вот, если фигура, которая выше по глубине пересекает нижестоящую фигуру прозрачным куском, то при клике на нижестоящую фигуру через прозрачность вышестоящей, мы двигает вышестоящую. Как сделать так, что бы фигуры не двигались за прозрачный участок? просто при рисовании через graphics, к примеру круг, он не тянется за невидимую область. спасибо |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
А в каком контейнере лежит нарисованный круг и какие события подписаны на контейнер?
Без примера кода тяжело догадываться, что Вы делаете. Либо придется сделать самому ![]() |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 211
|
контейнер -sprite на нем mouseChildren=false; и подгружается битмам
//========================================= public function loadTexture(path:String,textureIndex:int){ //AvatarPath=_path var loader:Loader = new Loader(); var lc:LoaderContext = new LoaderContext; lc.parameters = { "textureIndex": String(textureIndex)}; loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onTextureloadComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onLoadError); loader.load(new URLRequest(path),lc); //========================================= private function onTextureloadComplete(ev:Event):void{ // setBitmap(ev.target.content as Bitmap,ev.target.parameters.textureIndex); /*var mc:MovieClip=ev.target.content as MovieClip; var sp:Sprite = new Sprite(); sp.graphics. copyFrom(mc.graphics); sp.y=-sp.height/2; sp.x=-sp.width/2; //mc.mouseEnabled = false; addChild(sp);*/ graphics.clear(); graphics.beginBitmapFill(Bitmap(ev.target.content).bitmapData); graphics.drawRect(0,0,size*2,size); graphics.endFill(); //ready=true; } } как я уже не пробовал, и рисовал битмап на самом спрайте, и пихал битмап сверху, даже в отдельный swf кидал. ПС добавил пример. Код в первом кадре, лень было класс лепить. Границы фигуры видны по изменению курсора. Вот как с этим бороться? Последний раз редактировалось ther; 25.03.2014 в 05:55. |
|
|||||
|
Я делал так: через getObjectsUnderPoint получал список спрайтов под курсором в момент клика. Потом каждый проверял через hitTestPoint на какой участок попал клик, прозрачный или непрозрачный, найдя верхний спрайт у которого клик попал на непрозрачный участок обрывал обработку события и посылал событие клика уже персонально этому спрайту.
__________________
interplanety |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Класс InteractivePNG поищите.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 211
|
Korchy
у меня hitTestPoint не работает. Я с него и начал. Всегда возвращает false Wolsh спасибо, пробую |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
вот здесь есть над чем подумать http://stackoverflow.com/questions/1...h-transparency
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|