Открыть главное меню

Изменения

FireURQ:Тултипы с помощью декораторов

3479 байт добавлено, 12:55, 9 июня 2012
Новая: Пример со всплывающими подсказками, показанный Фаертоном перед релизом FireURQ 1.6. :0 pln pln pln Вы с...
Пример со всплывающими подсказками, показанный [[Fireton|Фаертоном]] перед релизом FireURQ 1.6.

:0
pln
pln
pln Вы стоите на берегу быстрого <nowiki>[[ручья|!float("x1", 200, "Ручей шумит и бормочет, прохладная вода бежит на восток, к реке.")]]</nowiki>, весело бегущего между крупных замшелых <nowiki>[[валунов|!float("x2", 200, "Влажные большие валуны покрыты мхом и скользкими водорослями. Вода огибает их, и водоросли колышатся в потоке.")]]</nowiki>. Рядом с ручьём растёт раскидистое <nowiki>[[дерево|!float("x3", 300, "Это молодая плакучая ива, её длинные ветви колышит ветерок, и кажется, что шелест листьев переговаривается с журчаньем ручья...")]]</nowiki>, его ветви склоняются над водой, как будто дерево хочет напиться прохладной воды.
end<br />
:float ; unique id, width, text
; параметры:
; 1 - уникальный id (текст)
; 2 - ширина тултипа (число)
; 3 - текст тултипа<br />
; это id декораторов прямоугольника и текста тултипа
rectid = "tiprect#%float_1$"
textid = "tiptext#%float_1$"<br />
if decor_#%rectid$_width = 0 then goto float_create ; если такой тултип уже есть, уничтожаем его
decordel #%rectid$
decordel #%textid$<br />
:float_create
; создаём декораторы (почти полностью прозрачными)
decoradd #%textid$ (0, 0, -2) TEXT float_3, 0x01030086, "arial.ttf[13]" ; текстовый (-2 - потому что "выше" всех)
decor_#%textid$_width = float_2 ; задаём ширину текста
decoradd #%rectid$ (0, 0, -1) RECT float_2+10, decor_#%textid$_height+10, 0x01f8c862 ; прямоугольник под текстом, чуть шире и выше текста<br />
; считаем позицию тултипа
rect_y = mouse_y - decor_#%rectid$_height - 5 ; нижний край - над мышью
if rect_y < 0 then rect_y = mouse_y + 5 ; если вылазит за экран, то пусть будет под мышью
rect_x = mouse_x ; а левый край - прямо по мыши
if rect_x + decor_#%rectid$_width > 800 then rect_x = 800 - decor_#%rectid$_width ; если вылазит, скорректируем, чтобы не вылазил
decormov #%rectid$ rect_x, rect_y ; перемещаем прямоугольник на вычисленную позицию
decormov #%textid$ rect_x + 5, rect_y + 5 ; а текст - внутри прямоугольника<br />
; скриптуем декораторы (плавно зажечь, подождать 3 секунды и плавно потушить с небольшим сдвигом вниз)
decor_#%textid$_script = "col 0xFF030086, 500 / pau 3000 / mvrx 0, 10, 1000/ col 0x01030086, 1000 / del"
decor_#%rectid$_script = "col 0xFFf8c862, 500 / pau 3000 / mvrx 0, 10, 1000/ col 0x01f8c862, 1000 / del"
end

[[Категория:FireURQ:Примеры]]