Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.07.2015, 02:30
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 1  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
По умолчанию Как работает getObjectsUnderPoint?

Читаем хэлп:
Цитата:
Returns an array of objects that lie under the specified point and are children (or grandchildren, and so on) of this DisplayObjectContainer instance. Any child objects that are inaccessible for security reasons are omitted from the returned array. To determine whether this security restriction affects the returned array, call the areInaccessibleObjectsUnderPoint() method.
Т.е. возвращать он должен детей,так?Пишу
Код AS3:
var objs:Array = cont.getObjectsUnderPoint(new Point(stage.mouseX, stage.mouseY));
trace(objs[0]==cont); //true
Самое интересное, что в objs вообще нет того, над чем мышь находится

Старый 11.07.2015, 10:01
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
так а почему ты пишешь stage.mouseX, а не cont.mouseX?

Старый 11.07.2015, 16:37
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Цитата:
так а почему ты пишешь stage.mouseX, а не cont.mouseX?
потому что
Цитата:
The point parameter is in the coordinate space of the Stage, which may differ from the coordinate space of the display object container (unless the display object container is the Stage). You can use the globalToLocal() and the localToGlobal() methods to convert points between these coordinate spaces.
Я, кажется, понял в чем дело - похоже он возвращает список DisplayObject'ов, а не DisplayObjectContainer'ов.
Если делать так
Код AS3:
stage.getObjectsUnderPoint(new Point(stage.mouseX, stage.mouseY));
и перебирать родителей того что вернулось - можно найти компонент, над которым висит мыша.
При этом уже
Код AS3:
trace(objs[0]==stage);//false
Как в результат попадает контейнер, у которого был вызван этот метод - загадка

Старый 12.07.2015, 12:34
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 4  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Если в контейнере лежит битмапа, то вернется битмапа. Если в контейнере лежит спрайт, на котором ты что-то нарисовал (sprite.graphics), то вернется спрайт.

А если нарисуешь что-то на самом контейнере, то ребенка не будет, поэтому возвращается сам контейнер.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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