#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.