![]() |
|
||||||||||
|
|||||
|
Цитата:
У меня вообще система работает так (тут немного урезанный вариант): 1) Все объекты, у которых может быть подсказка применяют интерфейс ITooltip, в котором есть геттер / сеттер для поля hintText и localToGlobal(point:Point):Point вот так: public interface ITooltip { function set hintText(value:String):void; function get hintText():String; function localToGlobal(point:Point):Point; } ROLL_OVER, ROLL_OUT 3) Дальше в обработчике ROLL_OVER проверяет что это за объект private function onRollOver(e:MouseEvent):void { if (e.target is ITooltip) { showTooltip(e.target as ITooltip); // показываем подсказку } } private function showTooltip(tooltip:ITooltip):void { _currentHint = getHintFromPool(); // постоянно юзает один и тот же лейбл для подсказок. Больше не требуется _currentHint .setText(tooltip.hintText); var position:Point = tooltip.localToGlobal(new Point()); _currentHint x = position.x; _currentHint .y = position.y; // тут еще можно рассчитать положение со смещением, чтобы за границами экрана не вылезал, если близко к краю stage.addChild(_currentHint ); } private function onRollOut(e:MouseEvent):void { if (_currentHint) { _currentHint.remove(); // там подсказка еще подписана на событие removedFromStage, чтобы возвращаться в пул _currentHint = null; } } 6) Профит Не знаю как там у тебя что показывается поверх оверлеев. С этой системой такое в принципе невозможно. Когда я ещё писал на флеше, эта либа у меня успешно кочевала из проекта в проект и никогда не глючила п.с. Цитата:
![]()
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Цитата:
Цитата:
Цитата:
Цитата:
|
|
|||||
|
Цитата:
Зачем аргументы? Нельзя и всё тут)Цитата:
А то можно сказать, а если бы владелец контейнера удалил твой контейнер, то твоя игра вообще не работала бы. Цитата:
Я бы сказал так, приложение, в котором что-то там со стороны загружается и добавляется, без учета логики родительского приложения - это и есть костыль.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Цитата:
Цитата:
Добавлено через 7 минут Любой кейс, где твоя схема не работает - это "если бы да кабы".Тогда, конечно,спорить не о чем Добавлено через 16 минут Цитата:
Добавлено через 26 минут более того,это еще и вынуждает родителя тоже гадить на stage т.к. это единственный способ перекрыть всё) Последний раз редактировалось undefined; 25.11.2017 в 18:51. |
|
|||||
|
Цитата:
При правильном же подходе к разработке игры / приложения, тултипы будут отлично появляться там, где и должны. Они должны быть всегда поверх всех контейнеров. Не должна никакая флешка никаких попапов рисовать поверх тултипа. Он должен быть всегда сверху. Это такой негласный закон тултипов. Если ты мне приведешь какой-то вменяемый пример ситсемы или приложения, где это не так, я с удовольствием на это погляжу. Цитата:
Цитата:
Цитата:
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Кость, смотри есть 2 случая:
1)Работает всегда с оговорками 2)Работает всегда без оговорок. Давай на этом закончим пусть тс сам выбирает. При грамотной архитектуре переделать (1) в (2) можно в одну строку.Я в свое время это сделал заменой этого на это Цитата:
|
|
|||||
|
Цитата:
Ставим его на паузу, при необходимости, и тултип не появляется пока не снимем с паузы. Если допустить, что есть какая-то родительская флешка, в которой этот тултип может что-то там перекрывать, то она может просто временно отключить тултип. В любом случае и при твоем варианте у нее должен быть механизм отключения их, пусть даже блокировкой контейнера с тултипами, но должен быть. Так что код постановки на паузу этой системы легко можно реализовать. Я считаю, что использование stage в качестве контейнера, как раз в случае с тултипами вполне оправдано и нормально. Тултипы не имеют жесткой привязки ни к чему и в любом случае сами удаляются из родителя. Плюс такой подход дает большую автономию тултипа. Он уже не зависит от наличия какого-то дополнительного контейнера, который, в данном случае, просто избыточен.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
|
Цитата:
Цитата:
Добавлено через 6 минут Спасибо за пример. На счёт "статических" классов специально брал в кавычки. Понятно же о чём речь. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|