Страница 1 из 1

FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 08:17
Вадимчик
Здравствуйте!
Никак не можем решить такую проблему и в интернете ничего про это не сказано:
Необходимо при наведении курсора на точечный объект, имеющий символику в виде какой-то картинки, чтобы символ объекта менялся на другую картинку.
Есть точечный слой FeatureLayer. Символика задана внутри тега FeatureLayer через <esri:symbol> <esri:PictureMarkerSymbol путь к рисунку_1.png /> </esri:symbol>
На Map стоит стандартный прослушиватель (addEventListener(MouseEvent.MOUSE_OVER, NameFunction)
Сама фукнция имеет код:
private function NameFunction(event:MouseEvent):void
{
Mouse.cursor = MouseCursor.BUTTON;
var grp:Graphic = Graphic(event.target);
grp.symbol =onMouseOverSymbol;
}

В Declarations создано:
<esri:PictureMarkerSymbol id="onMouseOverSymbol" source="Путь к рисунку_2.png"/>

Как только меняем символику слоя с PictureMarkerSymbol на SimpleMarkerSymbol событие прекрасно отрабатывается.
В чём проблема, подскажите!!??

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 08:33
novia
Вадимчик писал(а):Никак не можем решить такую проблему и в интернете ничего про это не сказано:
Необходимо при наведении курсора на точечный объект, имеющий символику в виде какой-то картинки, чтобы символ объекта менялся на другую картинку.
вот вам форум, где это уже обсудили.

а вот еще пример реализации такой функциональности.

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 08:49
Вадимчик
Это всё я читал, замена на currentTarget не работает.
Мне надо именно сменить растровый символ при наведении курсора на точечный объект.
Векторные символы меняются без проблем.

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 09:10
novia
второй пример тоже не работает?

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 09:24
Вадимчик
С растровыми маркерами(PictureMarkerSymbol) - НЕТ.
С обычными (SimpleMarkerSymbol) - работает.

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 10:46
novia
проверил со слушателем на самой графике. успешно меняет один PictureMarkerSymbol на другой. использовать для присвоения нужно (event.currentTarget as Graphic).symbol

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 11:20
Вадимчик
Меняются все символы слоя. А надо чтобы только один над которым мышь )))
Вот код фунцкии, может что подправить, хотя и так минимум:

private function onMouseOver(event:MouseEvent):void
{
Mouse.cursor = MouseCursor.BUTTON;
(event.currentTarget).symbol = onMouseMarkerSymbol;
}
<fx:Declarations>
<esri:PictureMarkerSymbol id="onMouseMarkerSymbol" source="http://путь/images/sample.png"/>
</fx:Declarations>

Я даже прослушиватель переместил из Map в FeatureLayer.
НЕ ПОМОГАЕТ.

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 11:43
novia
я же вам дал ссылку на пример. слушаем graphicAdd на FeatureLayer
внутри вешаем два слушателя на графику
в обработчике наведения и уведения мыши делаем дело

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 13:08
Вадимчик
Благодарю заработало))))
Единственное непонятно, почему мой пример, когда слушается наведение курсора в FutureLayer работает только с нерастровой графикой.

Re: FLEX API ARCGIS Обработка события MOUSE_OVER

Добавлено: 26 ноя 2013, 15:36
novia
скорее всего из-за наличия картинки, которая либо не слушает, либо забирает событие у графики