![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2012
Сообщений: 1
|
Добрый день, я изучаю AS3 совсем недавно и столкнулся со следующей проблемой:
реализовал некий класс, который представляет собой сущность Toolbar'a. Содержит он, соответственно, Tool'ы, так же описанные мной. Объект класса Tool - простой BitmapAsset, натянутый на Sprite, и отлавливающий несколько событий для подсветки. При нажатии на Tool, объект ToolBar'a обрабатывает следующее mDragTool = new Tool(tmpClass); //создаем новый объект Tool, в параметр передан Embed-класс с изображением addChild(mDragTool); //добавляем на сцену mDragTool.startDrag(false, parent.getRect(this)); //инициируем перетаскивание mDragTool.mouseChildren = false; //отключаем реакцию на мышь для объекта и всех вложенных объектов mDragTool.mouseEnabled = false; mDragTool.x = mouseX-mDragTool.width/2; //"ставим" объект по центру курсора mDragTool.y = mouseY-mDragTool.height/2; Заранее благодарю за помощь. |
|
|||||
|
Попробовал смоделировать вашу ситуацию.
package { import flash.display.Graphics; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.DropShadowFilter; /** * ... * @author bav */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); for (var i:int = 0; i < 2; i++) { var s:Sprite = createPassive(); addChild(s); s.x = 200 * (i + 1); s.y = 200; } var a:Sprite = createActive(); addChild(a); a.mouseChildren = a.mouseEnabled = false; a.startDrag(true); } private function createActive():Sprite { var s:Sprite = new Sprite(); var g:Graphics = s.graphics; g.beginFill(0x00FF00); g.drawCircle(0, 0, 30); g.endFill(); return s; } private function createPassive():Sprite { var s:Sprite = new Sprite(); var g:Graphics = s.graphics; g.beginFill(0xFF0000); g.drawCircle(0, 0, 50); g.endFill(); s.addEventListener(MouseEvent.MOUSE_OVER, passiveMouseOverOut); s.addEventListener(MouseEvent.MOUSE_OUT, passiveMouseOverOut); return s; } private function passiveMouseOverOut(e:MouseEvent):void { var s:Sprite = e.currentTarget as Sprite; if (e.type == MouseEvent.MOUSE_OVER) s.filters = [new DropShadowFilter()]; else s.filters = []; } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|