![]() |
|
||||||||||
|
|
|
|||||
|
"Прозрачный" для мышиных событий компонент?
То есть чтоб все компоненты интерфейса под ним, спокойно обрабатывали события мыши. Возможен ли такой? (без трансляции всех подряд событий) собсна задача: Нужно затемнять интерфейс, с прорезанными незатемненными "окошками", их кол-во любое, положение тоже, система обучения пользователя. В этих окошках все нижние элементы должны быть доступны для действий мышкой, хотя для начала можно и без ограничений, можно и весь интерфейс. Уже пробовал играться с маской, то есть программно резать посередине элемента окна, в любом виде контейнер/компонент закрывает нижние компоненты от мыши. Сейчас пробую строить векторный компонент. Может кто сталкивался? Добавлено через 1 час 47 минут вектор порешал проблему, зря кипиш навел %) |
|
|||||
|
Регистрация: Aug 2010
Адрес: Харьков, Украина
Сообщений: 42
|
Кинь решение, может пригодится кому.
|
|
|||||
|
толком не вник почему не работает с Canvas прозрачность в окнах
возможно из-за обработки скрытой заливки <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler(event)"> <mx:filters> <mx:BlurFilter id="blurFilter" blurX="16" blurY="16"/> </mx:filters> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.events.FlexEvent; private var shape:Shape; private const DARK_COLOR:uint = 0x000000; private const DARK_ALPHA:Number = 0.7; private const DARK_BLUR:uint = 16; // Параметром передается ХМЛ список окон // координаты и размер public function setNewRects(rects:XMLList):void { shape.graphics.clear(); shape.graphics.lineStyle( 0, DARK_COLOR, 0 ); shape.graphics.beginFill( DARK_COLOR, DARK_ALPHA ); var squareCommands:Vector.<int> = new Vector.<int>(); var squareCoord:Vector.<Number> = new Vector.<Number>(); // 1 - MoveTo, 2 - LineTo squareCommands.push( 1, 2, 2 ,2, 2) // Рисуем Большой квадрат, основное затемнение на всё окно, в котором будут резаться окна поменьше squareCoord.push( 0,0, 750,0, 750,600, 0,600, 0,0); // Пробегаемся по списку мелких окон // важно чтоб они были в одном массиве данных с большим квадратом, иначе не будет "вырезки" for each ( var rect:XML in rects ) { var _x:int = rect.@x; var _y:int = rect.@y; var _width:int = rect.@width; var _height:int = rect.@height; squareCommands.push( 1, 2, 2 ,2, 2 ); squareCoord.push( _x, _y, _x + _width, _y, _x + _width, _y + _height, _x, _y + _height, _x, _y ); } shape.graphics.drawPath(squareCommands, squareCoord); shape.graphics.endFill(); } protected function creationCompleteHandler(event:FlexEvent):void { shape = new Shape(); this.addChild(shape); } ]]> </mx:Script> </mx:UIComponent> Последний раз редактировалось ShockWave512; 16.11.2010 в 01:27. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|