<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.crymod.net/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.crymod.net/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI</id>
		<title>Система Flash UI - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.crymod.net/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI"/>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;action=history"/>
		<updated>2026-08-06T10:19:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3678&amp;oldid=prev</id>
		<title>DCamer в 16:17, 9 марта 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3678&amp;oldid=prev"/>
				<updated>2012-03-09T16:17:36Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 16:17, 9 марта 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Для этого каждый Flash-ассет может быть определена в XML-файле со всеми событиями, функциями и переменными, которые должны быть доступны в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Для этого каждый Flash-ассет может быть определена в XML-файле со всеми событиями, функциями и переменными, которые должны быть доступны в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Дочерние статьи ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Система Flash UI/Функции|Список функций LUA]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Система Flash UI/Элементы UI как динамические текстуры|Элементы UI как динамические текстуры]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Система Flash UI/Локализация UI|Локализация UI]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* [[Система Flash UI/Использование FlashUI из CPP|Использование FlashUI из CPP]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Настройка XML для Flash-ассета ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Настройка XML для Flash-ассета ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 176:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 182:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|console_cursor|desc=0=отключено, 1=включено, если включено аппаратный курсор мыши также будет отображён на консоле. Только если включено '''cursor'''.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|console_cursor|desc=0=отключено, 1=включено, если включено аппаратный курсор мыши также будет отображён на консоле. Только если включено '''cursor'''.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|layer|desc=от 0 до ''n'', определяет, в каком порядке будут отображены элементы (&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;if more than one flash element is visible&lt;/del&gt;).}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|layer|desc=от 0 до ''n'', определяет, в каком порядке будут отображены элементы (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;если отображен более чем один Flash-элемент&lt;/ins&gt;).}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|alpha|desc=от 0 до 1, альфа фона Flash-элемента.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{BTS|alpha|desc=от 0 до 1, альфа фона Flash-элемента.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3658&amp;oldid=prev</id>
		<title>Alex626 в 12:31, 9 марта 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3658&amp;oldid=prev"/>
				<updated>2012-03-09T12:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 12:31, 9 марта 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CryEngine 3 Free SDK&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Игра&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Категория:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;CryEngine_3_Free_SDK&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Пользовательский_интерфейс&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''UI Action''' позволяет настраивать и контролировать любые Flash-элементы UI в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''UI Action''' позволяет настраивать и контролировать любые Flash-элементы UI в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Alex626</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3657&amp;oldid=prev</id>
		<title>Alex626 в 12:30, 9 марта 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3657&amp;oldid=prev"/>
				<updated>2012-03-09T12:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 12:30, 9 марта 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:CryEngine 3 Free SDK:Игра]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''UI Action''' позволяет настраивать и контролировать любые Flash-элементы UI в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''UI Action''' позволяет настраивать и контролировать любые Flash-элементы UI в потоковом графе.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Alex626</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3622&amp;oldid=prev</id>
		<title>DCamer в 17:02, 29 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3622&amp;oldid=prev"/>
				<updated>2012-02-29T17:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;amp;diff=3622&amp;amp;oldid=3621&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3621&amp;oldid=prev</id>
		<title>DCamer в 14:55, 29 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3621&amp;oldid=prev"/>
				<updated>2012-02-29T14:55:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 14:55, 29 февраля 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 268:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 268:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:fg_fadeElement.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:fg_fadeElement.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== UI &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Flowgraphs &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Потоковые графы &lt;/ins&gt;UI ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Чтобы создать новый потоковый граф для UI, просто откройте '''Flow Graph''' и выберите '''File-&amp;gt;New UI Action…'''.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;To create a new flowgraph for the &lt;/del&gt;UI &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;just open the *Flowgraph* and choose “File&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;New UI Action…”.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Все действия &lt;/ins&gt;UI &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;размещены в потоковых графах, а все XML&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;файлы должны быть сохранены в &lt;/ins&gt;'''Game/Libs/UI/UIActions'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;All UI Actions are located in the *Flow Graphs* list and the xml files needs to be saved in &lt;/del&gt;'''Game/Libs/UI/UIActions'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:FG_workspace.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:FG_workspace.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*Note:* All &lt;/del&gt;UI &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;actions are saved separate from the level&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;They need to be saved via &lt;/del&gt;File-&amp;gt;Save &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in the flowgraph menu&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*Make sure to save every time you did some changes\&lt;/del&gt;!&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;*&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Примечания|Все действия &lt;/ins&gt;UI &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;сохранены отдельно от уровня&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Их нужно сохранять через '''&lt;/ins&gt;File-&amp;gt;Save&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' в меню потокового графа&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''Убедитесь, что сохраняете каждый раз после изменений&lt;/ins&gt;!&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;You find all flownodes for the UI in the component list unter UI.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;You find all flownodes for the UI in the component list unter UI.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3612&amp;oldid=prev</id>
		<title>DCamer в 19:53, 27 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3612&amp;oldid=prev"/>
				<updated>2012-02-27T19:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 19:53, 27 февраля 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Настройка XML для Flash-ассета ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Настройка XML для Flash-ассета ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''Flash UI''' считывает все XML-файлы, которые находятся в'''Game/Libs/UI/UIElements''' и создаёт потоковые ноды для контролирования Flash-ассетов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Система '''Flash UI''' считывает все XML-файлы, которые находятся в '''Game/Libs/UI/UIElements''' и создаёт потоковые ноды для контролирования Flash-ассетов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Откройте существующий XML-файл или создайте новый, чтобы определить новый '''UIElement'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Откройте существующий XML-файл или создайте новый, чтобы определить новый '''UIElement'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3611&amp;oldid=prev</id>
		<title>DCamer в 17:35, 27 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3611&amp;oldid=prev"/>
				<updated>2012-02-27T17:35:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;amp;diff=3611&amp;amp;oldid=3603&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3603&amp;oldid=prev</id>
		<title>DCamer в 22:21, 26 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3603&amp;oldid=prev"/>
				<updated>2012-02-26T22:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;amp;diff=3603&amp;amp;oldid=3594&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3594&amp;oldid=prev</id>
		<title>DCamer: Новая страница: «The UI Action system allows to setup and control any flash UI element in the flowgraph.  For this purpose every flash asset can be defined in an xml file with all ev...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_Flash_UI&amp;diff=3594&amp;oldid=prev"/>
				<updated>2012-02-26T19:35:32Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «The UI Action system allows to setup and control any flash UI element in the flowgraph.  For this purpose every flash asset can be defined in an xml file with all ev...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The UI Action system allows to setup and control any flash UI element in the flowgraph.&lt;br /&gt;
&lt;br /&gt;
For this purpose every flash asset can be defined in an xml file with all events, functions and variables that need to be available in the flowgraph.&lt;br /&gt;
&lt;br /&gt;
== Setup xml for a flash asset ==&lt;br /&gt;
&lt;br /&gt;
The Flash UI system reads all xml files that are located in '''Game/Libs/UI/UIElements''' and creates flownodes to control the flash assets.&lt;br /&gt;
&lt;br /&gt;
Open an existing xml file or create a new one to define a new UIElement.&lt;br /&gt;
&lt;br /&gt;
Basic definition of a flash asset:&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;UIElements name=&amp;quot;HudElements&amp;quot;&amp;gt; &amp;lt;!-- Group name for this elements --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- definition of an UI element named &amp;quot;HUD&amp;quot; --&amp;gt;&lt;br /&gt;
  &amp;lt;UIElement name=&amp;quot;HUD&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- gfx/swf file for this UI element --&amp;gt;&lt;br /&gt;
    &amp;lt;GFx file=&amp;quot;HUD.gfx&amp;quot; layer=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;!-- the align mode of this element --&amp;gt;&lt;br /&gt;
      &amp;lt;Constraints&amp;gt;&lt;br /&gt;
        &amp;lt;Align mode=&amp;quot;dynamic&amp;quot; halign=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; scale=&amp;quot;1&amp;quot; max=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/Constraints&amp;gt;&lt;br /&gt;
    &amp;lt;/GFx&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- available functions --&amp;gt;&lt;br /&gt;
    &amp;lt;functions&amp;gt;&lt;br /&gt;
    &amp;lt;/functions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- available events that are raised by the flash asset --&amp;gt;&lt;br /&gt;
    &amp;lt;events&amp;gt;&lt;br /&gt;
    &amp;lt;/events&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- available variables --&amp;gt;&lt;br /&gt;
    &amp;lt;variables&amp;gt;&lt;br /&gt;
    &amp;lt;/variables&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- available arrays --&amp;gt;&lt;br /&gt;
    &amp;lt;arrays&amp;gt;&lt;br /&gt;
    &amp;lt;/arrays&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- available movieclips --&amp;gt;&lt;br /&gt;
    &amp;lt;movieclips&amp;gt;&lt;br /&gt;
    &amp;lt;/movieclips&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/UIElement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- definition of another UI element named &amp;quot;LoadingScreen&amp;quot; --&amp;gt;&lt;br /&gt;
  &amp;lt;UIElement name=&amp;quot;LoadingScreen&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/UIElement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/UIElements&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
&lt;br /&gt;
Functions that should be callable from outside need to be defined in the *&amp;lt;functions&amp;gt;* list of the element.&lt;br /&gt;
&lt;br /&gt;
e.g. an actionscript function to set a health bar:&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=ActionScript|блок=&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function setHealth(iHealth:Number):void&lt;br /&gt;
{&lt;br /&gt;
  // set a health bar&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
can be defined in the xml as:&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;function name=&amp;quot;SetHealth&amp;quot; funcname=&amp;quot;setHealth&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;Health&amp;quot; desc=&amp;quot;Players current health&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/function&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
where *name=”…”* is the name of the function that is visible in the flowgraph and *funcname=”…”* is the real name of the function in the actionscript.&lt;br /&gt;
&lt;br /&gt;
The system will automatically create a node for the flowgraph to call this function.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Function_node.png]]&lt;br /&gt;
&lt;br /&gt;
*Note:* It is also possible to define functions that are not in the rootspace of the flash file, e.g.&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;function name=&amp;quot;SetHealth&amp;quot; funcname=&amp;quot;myHealthMc.mysubmc.setHealth&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;Health&amp;quot; desc=&amp;quot;Players current health&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/function&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Events ===&lt;br /&gt;
&lt;br /&gt;
To get notification about some user interaction, e.g. if a button was pressed, events can be defined in the *&amp;lt;events&amp;gt;* list. To trigger an event in your actionscript code you have to call _fscommand(“commandString”)_. These _fscommands_ are handled by the engine.&lt;br /&gt;
&lt;br /&gt;
e.g. in the onPress function of a button you can call _fscommand_ with the string “onMyButtonPressed” and some arguments.&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=ActionScript|блок=&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;myButton.onPress = function()&lt;br /&gt;
{&lt;br /&gt;
  var args:Array = new Array();&lt;br /&gt;
  args.push(argument1);&lt;br /&gt;
  args.push(argument2);&lt;br /&gt;
  fscommand(“onMyButtonPressed”, args);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
To handle this event add a *&amp;lt;event&amp;gt;* tag into the &amp;lt;events&amp;gt; list&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;event name=&amp;quot;OnButton1&amp;quot; fscommand=&amp;quot;onMyButtonPressed&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;Arg1&amp;quot; desc=&amp;quot;Some argument&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;Arg2&amp;quot; desc=&amp;quot;Another argument&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/event&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The system creates a node to handle this event.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Event_node.png]]&lt;br /&gt;
&lt;br /&gt;
=== Variables, Arrays and MovieClips ===&lt;br /&gt;
&lt;br /&gt;
Access to an array or a variable can also be defined in the xml file.&lt;br /&gt;
&lt;br /&gt;
Just add a *&amp;lt;variable&amp;gt;* tag into the *&amp;lt;variables&amp;gt;* list, an *&amp;lt;array&amp;gt;* tag to the *&amp;lt;arrays&amp;gt;* list or a *&amp;lt;movieclip&amp;gt;* tag into the *&amp;lt;movieclips&amp;gt;* list.&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;variables&amp;gt;&lt;br /&gt;
  &amp;lt;variable name=&amp;quot;SomeVariable&amp;quot; varname=&amp;quot;someVariable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;variable name=&amp;quot;TextField&amp;quot; varname=&amp;quot;_root.myTextfield.text&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/variables&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;arrays&amp;gt;&lt;br /&gt;
  &amp;lt;array name=&amp;quot;SomeArray&amp;quot; varname=&amp;quot;_root.mc2.someArray&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/arrays&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;movieclips&amp;gt;&lt;br /&gt;
  &amp;lt;movieclip name=&amp;quot;MovieClip1&amp;quot; instancename=&amp;quot;_root.Mc1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;movieclip name=&amp;quot;MovieClip2&amp;quot; instancename=&amp;quot;_root.Mc1.subMc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/movieclips&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
To get or set a variable select the variable in the dropdown list of the *UI:Variable:Var* or *UI:Variable:Array* flownode.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Variable_nodes.png]]&lt;br /&gt;
*Note:* Arrays are comma separated strings.&lt;br /&gt;
&lt;br /&gt;
You can also access your defined MovieClips via FlowNodes.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Mc_gotoandplay.png]]&lt;br /&gt;
&lt;br /&gt;
== Display / hide and setup gfx files ==&lt;br /&gt;
&lt;br /&gt;
To show or hide a flash asset use the *UI:Display:Display* node. You can select the element in the dropdown list.&lt;br /&gt;
&lt;br /&gt;
To setup the behavior and the constraints use the *UI:Display:Constraints* and *UI:Display:Config* nodes.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Config_node.png]]&lt;br /&gt;
[[Файл:Constraints_node.png]]&lt;br /&gt;
&lt;br /&gt;
It is also possible to initialize all of those settings in the xml file.&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=hud.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;UIElement name=&amp;quot;HUD&amp;quot; mouseevents=&amp;quot;1&amp;quot; keyevents=&amp;quot;1&amp;quot; cursor=&amp;quot;1&amp;quot; console_mouse=&amp;quot;1&amp;quot; console_cursor=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GFx file=&amp;quot;HUD.gfx&amp;quot; layer=&amp;quot;1&amp;quot; alpha=&amp;quot;0.5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- the align mode of this element --&amp;gt;&lt;br /&gt;
    &amp;lt;Constraints&amp;gt;&lt;br /&gt;
      &amp;lt;Align mode=&amp;quot;fullscreen&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- &amp;lt;Align mode=&amp;quot;dynamic&amp;quot; halign=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot; scale=&amp;quot;1&amp;quot; max=&amp;quot;1&amp;quot; /&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;!-- &amp;lt;Align mode=&amp;quot;fixed&amp;quot; /&amp;gt; --&amp;gt;&lt;br /&gt;
      &amp;lt;!-- &amp;lt;Position top=&amp;quot;20&amp;quot; left=&amp;quot;20&amp;quot; width=&amp;quot;200&amp;quot; height=&amp;quot;200&amp;quot; /&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/Constraints&amp;gt;&lt;br /&gt;
  &amp;lt;/GFx&amp;gt;&lt;br /&gt;
  …&lt;br /&gt;
&amp;lt;/UIElement&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
* *mouseevents*&lt;br /&gt;
0=disable, 1=enabled, if enabled mouse events are send to the flash file (mouse-clicks and movement)&lt;br /&gt;
&lt;br /&gt;
* *cursor*&lt;br /&gt;
0=disabled, 1=enabled, if enabled a hardware mouse cursor is visible while the flash element is displayed.&lt;br /&gt;
&lt;br /&gt;
* *keyevents*&lt;br /&gt;
0=disabled, 1=enabled, if enabled keyevents are send to the flash element.&lt;br /&gt;
&lt;br /&gt;
* *console_mouse*&lt;br /&gt;
0=disabled, 1=enabled, if enabled the controller works as a mouse on console (thumb-stick). Only if *mouseevents* are enabled.&lt;br /&gt;
&lt;br /&gt;
* *console_cursor*&lt;br /&gt;
0=diabled, 1=enabled, if enabled a hardware cursor is displayed on console as well. Only if *cursor* is enabled.&lt;br /&gt;
&lt;br /&gt;
* *layer*&lt;br /&gt;
0 to n, defines in which order the elements are displayed (if more than one flash element is visible).&lt;br /&gt;
&lt;br /&gt;
* *alpha*&lt;br /&gt;
0 to 1, the background alpha of the flash element.&lt;br /&gt;
&lt;br /&gt;
=== Constraints ===&lt;br /&gt;
&lt;br /&gt;
There are three modes to place the asset on the screen:&lt;br /&gt;
&lt;br /&gt;
* *&amp;quot;fixed&amp;quot;*&lt;br /&gt;
in this mode the flash asset is displayed on a fixed position, defined by a top, left, width and height value.&lt;br /&gt;
&lt;br /&gt;
* *&amp;quot;dynamic&amp;quot;*&lt;br /&gt;
this mode aligns the asset on anchors. For vertical alignment it is possible to align the flash element at the &amp;quot;top&amp;quot;, &amp;quot;center&amp;quot; or &amp;quot;bottom&amp;quot;, for horizontal alignment to the &amp;quot;left&amp;quot;, &amp;quot;center&amp;quot; or &amp;quot;right&amp;quot; of the screen.&lt;br /&gt;
&lt;br /&gt;
If *scale* is &amp;quot;1&amp;quot; it tries to scale the element to the maximum without deforming the aspect ratio. If *scale* is set to &amp;quot;0&amp;quot;, it will not scale the flash asset.&lt;br /&gt;
If *max* is set to &amp;quot;1&amp;quot; it will maximize the element so that 100% of the screen is covered (this might cause that some parts of the element are cut-off) otherwise the asset will fit to the screen with maybe some uncovered space on the left/right or top/bottom side.&lt;br /&gt;
&lt;br /&gt;
* *&amp;quot;fullscreen&amp;quot;*&lt;br /&gt;
In this mode the viewport of the asset is same as the render viewport. If *scale* is set to &amp;quot;1&amp;quot; the asset is stretched to fit the complete screen, otherwise not.&lt;br /&gt;
&lt;br /&gt;
== Instantiation of Elements ==&lt;br /&gt;
&lt;br /&gt;
Each node has the *&amp;quot;InstanceID&amp;quot;* port. With this instance ID you can have more than one instance of any flash asset. The *&amp;quot;InstanceID&amp;quot;* port of any UI node defines which instance should be affected by this node. If you use a node with a new instance ID it will automaticly create the new instance of this flash asset. If you use &amp;quot;-1&amp;quot; as the instance ID, the node will affect all instances of this flash element.&lt;br /&gt;
&lt;br /&gt;
== Helpful functions ==&lt;br /&gt;
&lt;br /&gt;
There are some special *actionscript* functions that are automatically called by the UI system.&lt;br /&gt;
&lt;br /&gt;
These functions can be defined in the rootspace of your *actionscript* and don’t need to be defined in the xml file.&lt;br /&gt;
&lt;br /&gt;
=== Функции ===&lt;br /&gt;
==== Actionscript functions ====&lt;br /&gt;
&lt;br /&gt;
*cry_onSetup*&lt;br /&gt;
If this function exists, it is called once the gfx/swf file is loaded by the engine.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_onSetup(_bIsConsole) // true if running on console, false for pc&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cry_onShow*&lt;br /&gt;
If this function exists, it is called once the gfx/swf file is shown up.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_onShow()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cry_onHide*&lt;br /&gt;
If this function exists, it is called once the gfx/swf file is hided.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_onHide()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cry_onResize*&lt;br /&gt;
If this function exists, it is called once the resolution of the engine has changed.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_onResize(_intWidth, _intHeight)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cry_onBack*&lt;br /&gt;
If this function exists, it is called once if the player pressed the back button on the controller.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_onBack()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*cry_requestHide*&lt;br /&gt;
This function is called if the &amp;quot;RequestHide&amp;quot; port was triggered on the UI:Display:Display Node (or via code / lua). Can be used to fade out elements.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;function cry_requestHide()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fscommands ====&lt;br /&gt;
&lt;br /&gt;
There are some fscommand strings that can be called within your actionscript.&lt;br /&gt;
&lt;br /&gt;
*cry_hideElement*&lt;br /&gt;
If a fscommand is executed with this string, it tells the UI System to hide the element.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;fscommand(&amp;quot;cry_hideElement&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
Fade UI Element in / out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;// create onEnterFrame function to fade-in the root element (if UI Element is shown up)&lt;br /&gt;
function cry_onShow()&lt;br /&gt;
{&lt;br /&gt;
   _root._alpha = 0;&lt;br /&gt;
   onEnterFrame = function()&lt;br /&gt;
   {&lt;br /&gt;
      if (_root._alpha &amp;lt; 100)&lt;br /&gt;
      {&lt;br /&gt;
         _root._alpha++;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         // clear onEnterFrame function&lt;br /&gt;
         onEnterFrame = function() {};&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// create onEnterFrame function to fade-out the root element (if requested by UI System)&lt;br /&gt;
function cry_requestHide()&lt;br /&gt;
{&lt;br /&gt;
   onEnterFrame = function()&lt;br /&gt;
   {&lt;br /&gt;
      if (_root._alpha &amp;gt; 0)&lt;br /&gt;
      {&lt;br /&gt;
         _root._alpha--;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
         // clear onEnterFrame function and notify UI-System that this element does not need to be drawn anymore.&lt;br /&gt;
         onEnterFrame = function() {};&lt;br /&gt;
         fscommand(&amp;quot;cry_hideElement&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can now fade in/out the element by triggering the port show / requestHide if the UI:Display:Display Node.&lt;br /&gt;
&lt;br /&gt;
[[Файл:fg_fadeElement.png]]&lt;br /&gt;
&lt;br /&gt;
== UI Flowgraphs ==&lt;br /&gt;
&lt;br /&gt;
To create a new flowgraph for the UI just open the *Flowgraph* and choose “File-&amp;gt;New UI Action…”.&lt;br /&gt;
&lt;br /&gt;
All UI Actions are located in the *Flow Graphs* list and the xml files needs to be saved in '''Game/Libs/UI/UIActions'''.&lt;br /&gt;
&lt;br /&gt;
[[Файл:FG_workspace.png]]&lt;br /&gt;
&lt;br /&gt;
*Note:* All UI actions are saved separate from the level. They need to be saved via File-&amp;gt;Save in the flowgraph menu. *Make sure to save every time you did some changes\!*&lt;br /&gt;
&lt;br /&gt;
You find all flownodes for the UI in the component list unter UI.&lt;br /&gt;
&lt;br /&gt;
[[Файл:FGfg_components.png]]&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
This example shows a simple flowgraph to show/hide a loading screen and setup the level name and a progress value.&lt;br /&gt;
&lt;br /&gt;
[[Файл:example_fg.png]]&lt;br /&gt;
&lt;br /&gt;
The associated element is defined in '''Game/Libs/UI/UIElements/Menus.xml''':&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=Menus.xml|блок=&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;UIElement name=&amp;quot;LoadingScreen&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;GFx file=&amp;quot;LoadingScreen.gfx&amp;quot; layer=&amp;quot;2&amp;quot; alpha=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
    &amp;lt;Constraints&amp;gt;&lt;br /&gt;
      &amp;lt;Align mode=&amp;quot;fullscreen&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/Constraints&amp;gt;&lt;br /&gt;
  &amp;lt;/GFx&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;variables&amp;gt;&lt;br /&gt;
    &amp;lt;variable name=&amp;quot;Percent&amp;quot; varname=&amp;quot;LoadingPanel.Percent.text&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;variable name=&amp;quot;LevelName&amp;quot; varname=&amp;quot;LoadingPanel.Level.text&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/variables&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/UIElement&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== UI Actions ==&lt;br /&gt;
&lt;br /&gt;
Sometimes it is helpful to trigger a complex UI Action several times without rebuilding the whole graph every time.&lt;br /&gt;
&lt;br /&gt;
For this purpose it is possible to create UI Actions with a *“UI:Action:Start”* and *“*{*}UI:Action:End{*}*”* node. You will find this nodes under UI:Action.&lt;br /&gt;
&lt;br /&gt;
The Name of the Flowgraph defines the Name of the Action.&lt;br /&gt;
&lt;br /&gt;
The *“*{*}UI:Action:Control{*}*”* node allows to start an UI Action and receive notifications if an action was started or stopped.&lt;br /&gt;
&lt;br /&gt;
It is also possible to pass several arguments to an UIAction via the *“*{*}UI:Action:Control{*}*”* node.&lt;br /&gt;
&lt;br /&gt;
As an example the UIAction to display a USM Video file:&lt;br /&gt;
&lt;br /&gt;
[[Файл:ui_action.png]]&lt;br /&gt;
&lt;br /&gt;
This action can be used e.g. to play a movie on enter a proximity trigger:&lt;br /&gt;
&lt;br /&gt;
[[Файл:ui_action_2.png]]&lt;br /&gt;
&lt;br /&gt;
*Note:* You can control any UI action from any flowgraph. If you disable an UI Action, the complete flowgraph will be disabled (not only the Nodes between the start and end node). It is also possible to use the *StartAction* and *EndAction* notes more than once per flowgraph. Every *StartAction* node will be triggered if the action is started and the first reached *EndAction* node will trigger the OnEnd port of any *UI:Action:Control* node which is listening to the flowgraph.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LUA and Flash UI System ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to control the UI System via LUA.&lt;br /&gt;
[List of LUA functions|Flash UI LUA functions]&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;// Display UI Element&lt;br /&gt;
UIAction.ShowElement(&amp;quot;MyUIElement&amp;quot;, 0);&lt;br /&gt;
&lt;br /&gt;
// Call actionscript&lt;br /&gt;
UIAction.CallFunction(&amp;quot;MyUIElement&amp;quot;, 0, &amp;quot;Foo&amp;quot;, &amp;quot;paramStr1&amp;quot;, &amp;quot;paramStr2&amp;quot;, 123, 12.3, false);&lt;br /&gt;
&lt;br /&gt;
// set variable&lt;br /&gt;
UIAction.SetVariable(&amp;quot;MyUIElement&amp;quot;, 0, &amp;quot;MyVariable&amp;quot;, 23);&lt;br /&gt;
&lt;br /&gt;
// get variable&lt;br /&gt;
local var1 = UIAction.GetVariable(&amp;quot;MyUIElement&amp;quot;, 0, &amp;quot;MyVariable&amp;quot;);&lt;br /&gt;
if (var1) then&lt;br /&gt;
    Log(&amp;quot;Var1: %d&amp;quot;, var1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
// set array&lt;br /&gt;
local newValues = {&lt;br /&gt;
    &amp;quot;val1&amp;quot;,&lt;br /&gt;
    &amp;quot;val2&amp;quot;,&lt;br /&gt;
    &amp;quot;val3&amp;quot;,&lt;br /&gt;
};&lt;br /&gt;
UIAction.SetArray(&amp;quot;MyUIElement&amp;quot;, 0, &amp;quot;MyArray&amp;quot;, newValues);&lt;br /&gt;
&lt;br /&gt;
// get array&lt;br /&gt;
local values = UIAction.GetArray(&amp;quot;MyUIElement&amp;quot;, 0, &amp;quot;MyArray&amp;quot;);&lt;br /&gt;
local value;&lt;br /&gt;
if (values) then&lt;br /&gt;
    for i,value in ipairs(values) do&lt;br /&gt;
        Log(&amp;quot;Value: %s&amp;quot;, value);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Communication between C+\+ and UI flowgraph ==&lt;br /&gt;
&lt;br /&gt;
You can just create your own custom flownodes and use them to trigger/receive UI functions/events. More information in the [Creating a New Flow Node] topic.&lt;br /&gt;
&lt;br /&gt;
== UI Event System ==&lt;br /&gt;
&lt;br /&gt;
The UI System comes with an event system which can also used to communicate between C+\+ and the UI flowgraph.&lt;br /&gt;
&lt;br /&gt;
The event system provides an easy way to define function and event nodes and handle them in C++.&lt;br /&gt;
&lt;br /&gt;
=== Function nodes ===&lt;br /&gt;
&lt;br /&gt;
Function nodes are available to all flowgraphs and provide an easy way to call C+\+ code.&lt;br /&gt;
&lt;br /&gt;
Create a new .h file and name it *UIFunctions.h*&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=UIFunctions.h|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#ifndef __UIFunctions_H__&lt;br /&gt;
#define __UIFunctions_H__&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;IFlashUI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class CUIFunctions : public IUIEventListener&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    CUIFunctions();&lt;br /&gt;
    ~CUIFunctions();&lt;br /&gt;
&lt;br /&gt;
    // IUIEventListener&lt;br /&gt;
    virtual void OnEvent( const SUIEvent&amp;amp; event );&lt;br /&gt;
    // ~IUIEventListener&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    SUIEventHelper&amp;lt;CUIFunctions&amp;gt; m_Dispatcher;&lt;br /&gt;
    IUIEventSystem* m_pGameEvents;&lt;br /&gt;
&lt;br /&gt;
    void OnFoo( const SUIEvent&amp;amp; event );&lt;br /&gt;
    void OnBar( const SUIEvent&amp;amp; event );&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Create a new .cpp file and name it *UIFunctions.cpp*&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=UIFunctions.cpp|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;quot;StdAfx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;UIFunctions.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
CUIFunctions::CUIFunctions()&lt;br /&gt;
    : m_pGameEvents(NULL)&lt;br /&gt;
{&lt;br /&gt;
    if (gEnv-&amp;gt;pFlashUI)&lt;br /&gt;
    {&lt;br /&gt;
        // create a new event system called &amp;quot;Game&amp;quot;&lt;br /&gt;
        // type is eEST_UI_TO_SYSTEM; nodes for this event system will be found unter UI:Functions&lt;br /&gt;
        // register as event listener to the event system&lt;br /&gt;
        m_pGameEvents = gEnv-&amp;gt;pFlashUI-&amp;gt;CreateEventSystem( &amp;quot;Game&amp;quot;, IUIEventSystem::eEST_UI_TO_SYSTEM );&lt;br /&gt;
        m_pGameEvents-&amp;gt;RegisterListener( this );&lt;br /&gt;
&lt;br /&gt;
        // create a new function description for &amp;quot;Foo&amp;quot;&lt;br /&gt;
        SUIEventDesc fooDesc( &amp;quot;Foo&amp;quot;, &amp;quot;Foo&amp;quot;, &amp;quot;Call a function named foo&amp;quot; );&lt;br /&gt;
        // add a parameter description &amp;quot;Arg1&amp;quot; to the function description&lt;br /&gt;
        fooDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg1&amp;quot;, &amp;quot;Arg1&amp;quot;, &amp;quot;First Arg&amp;quot; ) );&lt;br /&gt;
        // register the function description to the dispatcher&lt;br /&gt;
        m_Dispatcher.RegisterEvent( m_pGameEvents, fooDesc, &amp;amp;CUIFunctions::OnFoo );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // create another function description for &amp;quot;Bar&amp;quot;&lt;br /&gt;
        SUIEventDesc barDesc( &amp;quot;Bar&amp;quot;, &amp;quot;Bar&amp;quot;, &amp;quot;Call a function named bar&amp;quot; );&lt;br /&gt;
        barDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg1&amp;quot;, &amp;quot;Arg1&amp;quot;, &amp;quot;First Arg&amp;quot; ) );&lt;br /&gt;
        barDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg2&amp;quot;, &amp;quot;Arg2&amp;quot;, &amp;quot;Second Arg&amp;quot; ) );&lt;br /&gt;
        m_Dispatcher.RegisterEvent( m_pGameEvents, barDesc, &amp;amp;CUIFunctions::OnBar );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CUIFunctions::~CUIFunctions()&lt;br /&gt;
{&lt;br /&gt;
    if ( m_pGameEvents )&lt;br /&gt;
        m_pGameEvents-&amp;gt;UnregisterListener( this );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CUIFunctions::OnEvent( const SUIEvent&amp;amp; event )&lt;br /&gt;
{&lt;br /&gt;
    // use the dispatcher to dipatch the event to the correct function&lt;br /&gt;
    m_Dispatcher.Dispatch( this, event );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CUIFunctions::OnFoo( const SUIEvent&amp;amp; event )&lt;br /&gt;
{&lt;br /&gt;
    int arg1 = 0;&lt;br /&gt;
&lt;br /&gt;
    if ( !event.args.GetArg(0, arg1) )&lt;br /&gt;
    {&lt;br /&gt;
        CryLogAlways(&amp;quot;Foo: argument 1 has wrong type (should be int)&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // do something&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CUIFunctions::OnBar( const SUIEvent&amp;amp; event )&lt;br /&gt;
{&lt;br /&gt;
    bool arg1 = false;&lt;br /&gt;
    float arg2 = 0;&lt;br /&gt;
&lt;br /&gt;
    if ( !event.args.GetArg(0, arg1) )&lt;br /&gt;
    {&lt;br /&gt;
        CryLogAlways(&amp;quot;Foo: argument 1 has wrong type (should be bool)&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( !event.args.GetArg(1, arg2) )&lt;br /&gt;
    {&lt;br /&gt;
        CryLogAlways(&amp;quot;Foo: argument 2 has wrong type (should be float)&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Open *Game.h*, forward declare your class and add a private member to CGame:&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=Game.h|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#ifndef __GAME_H__&lt;br /&gt;
#define __GAME_H__&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
class CUIFunctions;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
class CGame :&lt;br /&gt;
public IGame, public IGameFrameworkListener, public ILevelSystemListener&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
CUIFunctions * m_pUIFunctions;&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Open *Game.cpp* init m_pUIFunctions with NULL in the construcor, delete m_pUIFunctions in the deconstructor and create the CUIFunction object at the end of the init function.&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=Game.cpp|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;quot;StdAfx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Game.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
#include &amp;quot;UIFunctions.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
CGame::CGame()&lt;br /&gt;
    ...&lt;br /&gt;
{&lt;br /&gt;
    m_pUIFunctions = NULL;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CGame::~CGame()&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    SAFE_DELETE(m_pUIFunctions);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
bool CGame::Init(IGameFramework *pFramework)&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    if (m_ pUIFunctions == NULL)&lt;br /&gt;
    {&lt;br /&gt;
        m_ pUIFunctions = new CUIFunctions();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
{*}Note:* It is important to create all your classes that uses the UI event system before CompleteInit is called.&lt;br /&gt;
&lt;br /&gt;
This code will result in two new nodes *UI:Functions:Game:Foo* and *UI:Functions:Game:Bar*.&lt;br /&gt;
&lt;br /&gt;
[[Файл:evsys_fct_node.png]]&lt;br /&gt;
&lt;br /&gt;
If the port “send” is triggered, it will call the C+\+ code in UIFunctions.cpp.&lt;br /&gt;
&lt;br /&gt;
=== Event Nodes ===&lt;br /&gt;
&lt;br /&gt;
Event nodes are very similar to Function nodes. They are used to send events from C+\+ to any UI flowgraph.&lt;br /&gt;
e.g. you can create a singleton class to call events from everywhere of your code.&lt;br /&gt;
&lt;br /&gt;
Create a .h file UIGameEvents.h&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=UIGameEvents.h|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#ifndef __UIGameEvents_H__&lt;br /&gt;
#define __UIGameEvents_H__&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;IFlashUI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class CUIGameEvents&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
    // access to instance&lt;br /&gt;
    static CUIGameEvents* GetInstance()&lt;br /&gt;
    {&lt;br /&gt;
        static CUIGameEvents inst;&lt;br /&gt;
        return &amp;amp;inst;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // init the game events&lt;br /&gt;
    void Init();&lt;br /&gt;
&lt;br /&gt;
    // events&lt;br /&gt;
    enum EUIGameEvents&lt;br /&gt;
    {&lt;br /&gt;
        eUIGE_FooEvent,&lt;br /&gt;
        eUIGE_BarEvent,&lt;br /&gt;
    };&lt;br /&gt;
    void SendEvent( EUIGameEvents event, const SUIArguments&amp;amp; args );&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    CUIGameEvents() : m_pGameEvents(NULL) {};&lt;br /&gt;
    ~CUIGameEvents() {};&lt;br /&gt;
&lt;br /&gt;
    IUIEventSystem* m_pGameEvents;&lt;br /&gt;
    std::map&amp;lt;EUIGameEvents, uint&amp;gt; m_EventMap;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Create a .cpp file UIGameEvents.cpp&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=UIGameEvents.cpp|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;quot;StdAfx.h&amp;quot;&lt;br /&gt;
#include &amp;quot;UIGameEvents.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void CUIGameEvents::Init()&lt;br /&gt;
{&lt;br /&gt;
    if (gEnv-&amp;gt;pFlashUI)&lt;br /&gt;
    {&lt;br /&gt;
        // create a new event system called &amp;quot;Game&amp;quot;&lt;br /&gt;
        // type is eEST_SYSTEM_TO_UI; nodes for this event system will be found unter UI:Events&lt;br /&gt;
        m_pGameEvents = gEnv-&amp;gt;pFlashUI-&amp;gt;CreateEventSystem( &amp;quot;Game&amp;quot;, IUIEventSystem::eEST_SYSTEM_TO_UI );&lt;br /&gt;
&lt;br /&gt;
        // create a new event description for &amp;quot;Foo&amp;quot;&lt;br /&gt;
        SUIEventDesc fooDesc( &amp;quot;Foo&amp;quot;, &amp;quot;Foo&amp;quot;, &amp;quot;Event named foo&amp;quot; );&lt;br /&gt;
        // add a parameter description &amp;quot;Arg1&amp;quot; to the event description&lt;br /&gt;
        fooDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg1&amp;quot;, &amp;quot;Arg1&amp;quot;, &amp;quot;First Arg&amp;quot; ) );&lt;br /&gt;
        // register the event to the event system and associate the id with the event enum&lt;br /&gt;
        m_EventMap[ eUIGE_FooEvent ] = m_pGameEvents-&amp;gt;RegisterEvent( fooDesc );&lt;br /&gt;
&lt;br /&gt;
        // create another event description for &amp;quot;Bar&amp;quot;&lt;br /&gt;
        SUIEventDesc barDesc( &amp;quot;Bar&amp;quot;, &amp;quot;Bar&amp;quot;, &amp;quot;Event named bar&amp;quot; );&lt;br /&gt;
        barDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg1&amp;quot;, &amp;quot;Arg1&amp;quot;, &amp;quot;First Arg&amp;quot; ) );&lt;br /&gt;
        barDesc.Params.push_back( SUIParameterDesc( &amp;quot;Arg2&amp;quot;, &amp;quot;Arg2&amp;quot;, &amp;quot;Second Arg&amp;quot; ) );&lt;br /&gt;
        m_EventMap[ eUIGE_BarEvent ] = m_pGameEvents-&amp;gt;RegisterEvent( barDesc );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CUIGameEvents::SendEvent( EUIGameEvents event, const SUIArguments&amp;amp; args )&lt;br /&gt;
{&lt;br /&gt;
    // send the event&lt;br /&gt;
    if (m_pGameEvents)&lt;br /&gt;
    {&lt;br /&gt;
        m_pGameEvents-&amp;gt;SendEvent( SUIEvent(m_EventMap[event], args) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Open Game.cpp, include «'''UIGameEvents.h'''» and add to the end of the Init function:&lt;br /&gt;
&lt;br /&gt;
{{Код|заголовок=Game.cpp|блок=&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;bool CGame::Init(IGameFramework *pFramework)&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    CUIGameEvents::GetInstance()-&amp;gt;Init();&lt;br /&gt;
}&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The code will create two nodes for the flowgraph:&lt;br /&gt;
&lt;br /&gt;
[[Файл:evsys_evt_node.png]]&lt;br /&gt;
&lt;br /&gt;
Now you can call from everywhere in your code the SendEvent function to trigger e.g. the '''UI:Events:Game:Bar''' Node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;int arg1 = 12;&lt;br /&gt;
float arg2 = 1.4f;&lt;br /&gt;
&lt;br /&gt;
SUIArguments args;&lt;br /&gt;
args.AddArgument( arg1 );&lt;br /&gt;
args.AddArgument( arg2 );&lt;br /&gt;
&lt;br /&gt;
CUIGameEvents::GetInstance()-&amp;gt;SendEvent( CUIGameEvents::eUIGE_BarEvent, args );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	</feed>