Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как узнать какой объект находится под точкой (http://www.flasher.ru/forum/showthread.php?t=183864)

Isfet 03.09.2012 19:52

Как узнать какой объект находится под точкой
 
Вложений: 1
Всем привет, возникла тут проблемка.
вот есть такая шкала, на ней обозначен интервал времени,
Вложение 28406
на большими черточками обозначены часы.
Планировал сделать следующее:
Каждую черту сделать классом, чтобы она знала какое у нее время, на больших чертах есть текстовое поле.
если она встанет на центр. треугольник, время должно изменить цвет.
Тянем шкалу вправо или влево перемещаются только черточки (битмапа на месте), и когда черта пересекается с центральным треугольником(тоесть таким образом мы выбираем какое-либо время), записывает в переменную контейнера время, которое хранится в черте.
Тоесть мне нужно узнать какая в черта в данный момент находится под треугольником , чтобы вытащить из нее время. Не знаю можно ли это сделать с помощью hitTestPoint.
Подскажите мож кто сталкивался с таким? Может есть способы попроще, просто те которые видятся мне очень ресурсопотребляющие?

Isfet 03.09.2012 20:11

Нашел тут метод getObjectsUnderPoint();
наверное то, что надо.

Anton Riot 03.09.2012 23:46

Время в чёрточках – последнее слово во времяисчеслении!

spirit2 04.09.2012 03:39

Почитайте про MVC.
В собираетесь считывать данные с картинки, а потом заниматься их обработкой, хотя логичнее начать с вычислений, а отображать уже по факту необходимости.

bav 04.09.2012 09:52

Цитата:

мне нужно узнать какая в черта в данный момент находится под треугольником
По-моему нужно исходить из координат контейнера черт и координат треугольника. Без всяких hitTestPoint и getObjectsUnderPoint. Вам же известно расстояние между черточками? И наверняка ссылки на черточки хранятся в массиве. То есть как-то так:
Код AS3:

var difference:Number = triangle.x - container.x;
var nearestIndex:Number = Math.round(difference / BETWEEN_LINES);
var toNearestLine:Number = Math.abs(difference - nearestIndex * BETWEEN_LINES);
if (toNearestLine < MIN_MARGIN)
    glowTime(lines[nearestIndex]);
else
    darkenAllTimes();



Часовой пояс GMT +4, время: 07:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.