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

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

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

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
По умолчанию dropTarget возвращает null или как сделать "корзину"

есть контейнер в виде мувиклипа "mainPlate", на нём лежат дети мувиклипы аля
Код AS3:
var element:Element = new Element;
mainPlate_.addChild(element);
у каждого element есть свой .id

как узнать id "dropTarget`а" (куда положили) при перетаскивании одного element на другой?

делаю так:
Код AS3:
element.stopDrag();
var id2:int = (element.dropTarget as Element).id;
element.dropTarget as Element возвращает null
пробовал element.dropTarget.id - тоже null

можно и hitTest, но как я понял, он только для Sprit`ов..

подскажите нубасу = )

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Привет))
Дело в том что dropTarget возвращает самый глубоковложенный объект, то есть в твоем случае не Element, а то что в нем в самом конце списка отображения, скорее всего [Object Shape] (можешь проверить трейсом, трейси просто element.dropTarget).
Соответственно, чтобы получить id Элемента, надо подняться на его уровень. Нпример, в том файле что я показывал, работает такая строчка в collisionControl:
Код AS3:
trace((_dragged.dropTarget.parent.parent as Element).id)
__________________
Reality.getBounds(this);

Старый 14.10.2011, 01:56
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 3  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
ааа) очередной раз выручаешь!)

Старый 14.10.2011, 02:09
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 4  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Что есть collisionControl?
parent - разве не есть зло, тем более 2 раза?
__________________
Стой! Опасная зона! Работа мозга!

Старый 14.10.2011, 02:13
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 5  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
parent - разве не есть зло
Был бы зло = его бы небыло вообще. Что 2 раза зло это понятно. А вот 1 раз вполне сносная картина.
Представь ситуацию : есть некий класс в который зашивается по ходу хеш мапа, зашивается так себе не спеша... А класс этот некий контейнер в котором находятся кнопки управления и т.д. Вот по нажатию кнопки нужно заюзать часть хеш мапы. ... и имеем e.target.parent as SuperClass/
Реализация ни к черту верно? Когда такое может быть использовано : например есть у вас граф либа ( векторная ) созданная в IDE - вот там же в ide и создался графический контейнер в котором и лежат наши красивые элементы управления
__________________
Марк Tween

Старый 14.10.2011, 02:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Безусловное зло! Это иллюстрация, где прячется Element. Естественно, в данном случае это сильносвязный быдлокод (заметьте, тут даже проверок не делается, так как это – не решение, а подсказка где копать). Мне кстати тоже будет интересно услышать кошерные варианты решения данной ситуации. Вкратце опишу еще раз - есть на экране несколько экземпляров класса Element, расширяющего Спрайт. В них находятся мувиклипы (библиотечных подклассов). Element'ы таскаются мышкой и опускаются друг на друга. В обработчике отпускания мыши выполняется stopDrag() и надо получить ссылку на экземпляр класса Element.
Свойство dropTarget указывает на какую-то графику в библиотечном клипе, который внутри этого экземпляра Element (ну или на что-то совсем левое, если бросили мимо).
__________________
Reality.getBounds(this);

Старый 14.10.2011, 03:04
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 7  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Ну да, как вариант дополнительно можно в рекурсии тогда вверх идти, проверяя каждого родителя на is Element вместо дабл парента.
__________________
Стой! Опасная зона! Работа мозга!

Старый 14.10.2011, 03:04
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А вообще это всё бессмысленное занятие – dropTarget возвращает объект, оказавшийся не под брошенным объектом, а оказавшийся под курсором в момент отпускания кнопки мыши.
Для вашей задачи нужна другая система проверки – проверка пересечений самих объектов.
__________________
Reality.getBounds(this);

Старый 14.10.2011, 08:29
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 9  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
mouseChildren = false не поможет?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 14.10.2011, 22:15
A1R1NG вне форума Посмотреть профиль Отправить личное сообщение для A1R1NG Найти все сообщения от A1R1NG
  № 10  
Ответить с цитированием
A1R1NG

Регистрация: Oct 2011
Адрес: Москва
Сообщений: 21
ну dropTarget действительно не подходит здесь.(( а что тогда?

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

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

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


 


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


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