<?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=Scaleform_GFx_%D0%B8_CryENGINE</id>
		<title>Scaleform GFx и CryENGINE - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.crymod.net/index.php?action=history&amp;feed=atom&amp;title=Scaleform_GFx_%D0%B8_CryENGINE"/>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=Scaleform_GFx_%D0%B8_CryENGINE&amp;action=history"/>
		<updated>2026-08-06T10:17:53Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://wiki.crymod.net/index.php?title=Scaleform_GFx_%D0%B8_CryENGINE&amp;diff=3560&amp;oldid=prev</id>
		<title>DCamer в 12:32, 26 февраля 2012</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=Scaleform_GFx_%D0%B8_CryENGINE&amp;diff=3560&amp;oldid=prev"/>
				<updated>2012-02-26T12:32:57Z</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:32, 26 февраля 2012&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 60:&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;Для иного его использования, необходимо реализовать '''ScriptBind''' для (например) класса '''HUD Manager''' для того, чтобы Lua мог взаимодействовать с С++ (взгляните на файлы '''ScriptBind_Game.h''' и '''ScriptBind_Game.cpp'''). В пределах этих методов '''ScriptBind''', вы можете просто вызвать метод Flash через указатель '''IFlashPlayer''':&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;Для иного его использования, необходимо реализовать '''ScriptBind''' для (например) класса '''HUD Manager''' для того, чтобы Lua мог взаимодействовать с С++ (взгляните на файлы '''ScriptBind_Game.h''' и '''ScriptBind_Game.cpp'''). В пределах этих методов '''ScriptBind''', вы можете просто вызвать метод Flash через указатель '''IFlashPlayer''':&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;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;pFlashPlayer-&amp;gt;Invoke0(&amp;quot;flashMethod&amp;quot;); // 0 аргументов&amp;lt;/source&amp;gt;&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;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;pFlashPlayer-&amp;gt;Invoke0(&amp;quot;flashMethod&amp;quot;); // 0 аргументов&amp;lt;/source&amp;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;[[Категория:CryEngine 3 Free SDK:Пользовательский интерфейс]]&lt;/ins&gt;&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=Scaleform_GFx_%D0%B8_CryENGINE&amp;diff=3523&amp;oldid=prev</id>
		<title>DCamer: Новая страница: «'''Scaleform GFx''' — внешнее подпрограммное обеспечение позволяющее отображать Flash-элементы на ...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.crymod.net/index.php?title=Scaleform_GFx_%D0%B8_CryENGINE&amp;diff=3523&amp;oldid=prev"/>
				<updated>2012-02-24T19:49:58Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;#39;&amp;#39;&amp;#39;Scaleform GFx&amp;#39;&amp;#39;&amp;#39; — внешнее подпрограммное обеспечение позволяющее отображать Flash-элементы на ...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Scaleform GFx''' — внешнее подпрограммное обеспечение позволяющее отображать Flash-элементы на экране (UI, HUD, текстуры в формате Flash, и т. д.).&lt;br /&gt;
&lt;br /&gt;
Flash-файлы должны быть обработаны '''GFxExporter''', прежде чем их использовать в движке. Файлы '''Scaleform GFx''' используют в своём название расширение '''gfx'''. Далее представлен короткие пример отрисовки основного Flash-элменета в качестве HUD:&lt;br /&gt;
&lt;br /&gt;
Откройте '''Game.h''', найдите '''m_pBitmapUi''' и добавьте:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;quot;IFlashPlayer.h&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
IFlashPlayer* m_pFlashPlayer;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IFlashPlayer''' — интерфейс, дающий вам все возможности контролировать проигрыватель Flash в игровом окне проекции.&lt;br /&gt;
&lt;br /&gt;
Откройте '''Game.cpp'''. Добавьте в конструктор инициализацию указателя проигрывателя Flash.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_pFlashPlayer(NULL)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В функции '''Init''' создайте экземпляр проигрывателя Flash из системы.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;if(!m_pFlashPlayer)&lt;br /&gt;
{&lt;br /&gt;
    m_pFlashPlayer = gEnv-&amp;gt;pSystem-&amp;gt;CreateFlashPlayerInstance();&lt;br /&gt;
    bool bRes = m_pFlashPlayer-&amp;gt;Load(&amp;quot;Libs\\UI\\Menus_FindGame.swf&amp;quot;);&lt;br /&gt;
    CryLogAlways(&amp;quot;Loading Libs\\UI\\Menus_FindGame.swf: %s&amp;quot;,(bRes)?&amp;quot;Done&amp;quot;:&amp;quot;Error&amp;quot;);&lt;br /&gt;
    m_pFlashPlayer-&amp;gt;SetViewport(0,0,m_pFlashPlayer-&amp;gt;GetWidth(), m_pFlashPlayer-&amp;gt;GetHeight(), 1);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Экземпляр проигрывателя Flash создал '''CrySystem'''. Вы можете получить доступ к '''CrySystem''' через глобальную переменную '''gEnv'''.&lt;br /&gt;
&lt;br /&gt;
Вы можете отобразить Flash-файл в функции '''PostUpdate'''.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;if(m_pFlashPlayer != NULL)&lt;br /&gt;
{&lt;br /&gt;
    m_pFlashPlayer-&amp;gt;Advance(fDeltaTime);&lt;br /&gt;
    m_pFlashPlayer-&amp;gt;Render();&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Advance''' синхронизирует игру с Flash-файлами. С помощью '''Advance''' вы можете отображать анимированные Flash-файлы.&lt;br /&gt;
&lt;br /&gt;
Доступны различные консольные команды, позволяющие контролировать среду Flash:&lt;br /&gt;
&lt;br /&gt;
;sys_flash:Включает/отключает отображение Flash.&lt;br /&gt;
;sys_flash_info:Включает профилирование Flash, и отображение различной информации.&lt;br /&gt;
;sys_flash_log_options:Включает отслеживание некоторых, связанных с Flash, аспектов (загрузка Flash, выполнение ActionScript, и т. д.).&lt;br /&gt;
&lt;br /&gt;
== Вызов ActionScript в Lua ==&lt;br /&gt;
Вызов в '''ActionScript''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript&amp;quot;&amp;gt;fscommand(&amp;quot;MyCommand&amp;quot;)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Может быть перехвачен в C++ с помощью '''FSCommandHandler''' (интерфейс '''IFSCommandHandler'''). Таким образом, если у вас есть свой ​​собственный класс (например, '''HUD Manager'''), который загружает Flash-файлы, то вы должны его зарегистрировать как '''FSCommandHandler''' для Flash-команд через указатель '''IFlashPlayer''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;pFlashPlayer-&amp;gt;SetFSCommandHandler(this);&amp;lt;/source&amp;gt;&lt;br /&gt;
(конечно, вы можете использовать более чем один перехватчик команд, к примеру, один для меню и один для HUD)&lt;br /&gt;
&lt;br /&gt;
После этого, вы сможете вызывать все ваши команды из Flash через метод вашего класса, основанного на интерфейсе '''IFSCommandHandler''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void MyHUDManager::HandleFSCommand( const char *szCommand,const char *strArgs, void* pUserData )&lt;br /&gt;
{&lt;br /&gt;
   if(!strcmp(szCommand, &amp;quot;MyCommand&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
       CryLogAlways(&amp;quot;Flash command received...&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы получили Flash-команды, все, что вам нужно сделать, это вызвать метод из Lua-скрипта (взгляните на файл '''ScriptHelpers.h''' или же напрямую используйте сам '''ScriptSystem''' (&amp;lt;code&amp;gt;gEnv-&amp;gt;pScriptSystem&amp;lt;/code&amp;gt;)).&lt;br /&gt;
&lt;br /&gt;
Для иного его использования, необходимо реализовать '''ScriptBind''' для (например) класса '''HUD Manager''' для того, чтобы Lua мог взаимодействовать с С++ (взгляните на файлы '''ScriptBind_Game.h''' и '''ScriptBind_Game.cpp'''). В пределах этих методов '''ScriptBind''', вы можете просто вызвать метод Flash через указатель '''IFlashPlayer''':&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;pFlashPlayer-&amp;gt;Invoke0(&amp;quot;flashMethod&amp;quot;); // 0 аргументов&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>DCamer</name></author>	</entry>

	</feed>