Получить пиксель для растрового изображения под другим?

#actionscript-3

#actionscript-3

Вопрос:

Любая помощь по этому вопросу была бы высоко оценена.

Я создаю интерактивную карту во flash / actionscript 3.0 и хотел бы разрешить пользователю щелкнуть местоположение на карте, чтобы найти высоту в этой точке. На этапе у меня есть базовая карта области, расположенная поверх черно-белого изображения, где значение каждого пикселя представляет высоту в футах.

Пока что использование GetPixel для получения рельефа работает отлично, но когда базовая карта располагается поверх черно-белой поверхности рельефа, GetPixel извлекает значения для базовой карты, а не для базового изображения. Есть ли способ отобразить базовую карту пользователю, все еще используя GetPixel для извлечения значений из базового изображения?

Большое спасибо,

Мэтт

Комментарии:

1. Можете ли вы опубликовать часть кода, с которым вы работаете?

Ответ №1:

Просто используйте getPixel() для черно-белого изображения, а не для контейнера.

Я предполагаю, что у вас есть контейнерный спрайт и 2 дочерних элемента, черно-белое изображение и поверх него базовая карта. Присоедините прослушиватель щелчков к контейнерному спрайту и извлеките первый дочерний элемент с помощью getChildAt(0) . Получить BitmapData этого дочернего элемента и вызвать getPixel(x, y) для него.

Ответ №2:

Если базовое изображение не отображается пользователю, оно даже не обязательно должно быть в списке отображения; оно может существовать в памяти только как BitmapData.

Добавьте вашу функцию прослушивания MouseEvent.CLICK на базовую карту, на которую пользователи могут нажимать, и в этой функции используйте события x и y для создания BitmapData.GetPixel (x, y) на вашей карте высот (изображение в оттенках серого) объект BitmapData.