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

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

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

Регистрация: Sep 2010
Сообщений: 42
По умолчанию тултипы во всем проекте (игре)

Привет, такой вопрос.

Допустим, есть игра, в которой куча элементов, куча разных экранов и тд. Необходимо сделать тултипы к нужным элементам таким образом, чтобы они (тултипы) показывались всегда поверх остальных элементов и перемещались за курсором.

Я не могу придумать, как это все можно организовать таким образом, чтобы для каждого модуля не писать свой код тултипов. Допустим, есть экран генерации персонажа. Написал тултипы для этого экрана. Потом перешли в туториал, там тоже тултипы, потом в условную кузницу, там тоже тултипы.

Есть ли вариант каким-то образом упростить задачу? Прошу прощения за сумбурность, немного голова едет, ничего не придумывается.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Я не могу придумать, как это все можно организовать таким образом, чтобы для каждого модуля не писать свой код тултипов....Есть ли вариант каким-то образом упростить задачу?
Вы код в кадрах чтоли пишете? Что за "для каждого модуля свой код тултипов"? Напишите класс для показа тултипов, создайте отдельный контейнер поверх контейнера с игрой и HUD'ом, и пусть этот класс размещает подсказки только в нем...
__________________
Reality.getBounds(this);

Старый 04.11.2012, 13:57
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 3  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Есть ли вариант каким-то образом упростить задачу?
Хех, есть и не один.
Подхода к навешиванию тултипа на компонент знаю 3:

1. Регистрация компонента, над которым нужно показать тултип в глобальном классе с хранилищем всех связей и удаление регистрации при убирании компонента с экрана
Никогда не используйте этот подход. Окромя утечек памяти и кучи кода регистрации/разрегистрации никаких удобств не получите

2. Создание для каждого компонента объекта TooltipHandler, который сам подписывается на события мыши компонента, имеет ссылку на глобальный регистр тултипов, если оно надо, и который спокойно отправляется в небытиё вместе с компонентом, на который навешан.
Компоненты нифига не должны реализовывать - можно навесить тултип на что угодно, хоть на простой спрайт. Что показывать, какой текст или картинку указывается в самом экземпляре TooltipHandler при навешивании.

3. Ловля событий MOUSE_OVER и MOUSE_OUT (не ROLL OVER/OUT - они не всплывают!) на stage, поиск через target события компонента, который реализует интерфейс ITooltipable с полем data, который говорит что показывать.
Здесь недостатком является необходимость реализации интерфейса. Это серьезный недостаток: вот есть у вас сторонняя кнопка и чё теперь, её наследовать и интерфейс реализовывать?

Как над всеми компонентами показывать? Пути здесь 2:
- просто добавляем новый тултип на stage - он оказывается выше всех
- делаем новый Sprite, добавяем его вначале поверх всех остальных контейнеров и далее создаём тултипы на нём

Тултиповая система с преферансом и поэтессами, но на haXe (примеры в том же репозитоии и скомпилированные в swf тоже есть):
https://github.com/cser/temperate/tr...erate/tooltips
Но, возможно, Вам не надо столько поэтесс (тем более там нельзя сделать плавное перетекание тултипа с компонента на компонент и другие вещи) и вы сами соберёте что-то простое за пару часов.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Юзаю иногда этот простой и удобный ToolTip class
__________________
In Code We Trust

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

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

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


 


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


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