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

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

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

Регистрация: Oct 2008
Сообщений: 4
Отправить сообщение для topinambur с помощью ICQ
По умолчанию Загрузка SWF в HTMLLoader

Привет,

Сломал голову над такой проблемой. Я должен в AIR приложении периодически спрашивать сервер и обновлять подгружаемые SWF файлы. Их я помещаю в Application Storage, где лежит контейнер GameLoader.swf который их подгружает.
Вот как я это гружу в HTMLLoader:

Код AS3:
private function initGame():void{
 
	htmlLoader = new HTMLLoader();
 
	// параметры загрузки игры
	var gamefile:String = "game.swf";
	var logo:String = "1";
 
	var swfpath:String = "swf/";
	var sa_com:String = "https://game.somedomain.com/games/game.php";
	var sa_run:String = "1";
	var localrun:String = "1";
	var lang:String = "en";
	trace( File.applicationStorageDirectory.nativePath );
 
	// болванка HTML
	var htmlStr:String = '';
	htmlStr += ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> ';
	htmlStr += ' <html xmlns="http://www.w3.org/1999/xhtml"; lang="en" xml:lang="en"> ';
	htmlStr += '     <body>';
	htmlStr += '	     <div id="flashContent" height="100%" width="100%"> ' ; 
	htmlStr += '		     <object type="application/x-shockwave-flash" width="100%" height="100%" id="flash"> ';
	htmlStr += '			     <param name="movie" value="app-storage:/GameLoader.swf?phpsessid={0}&gamepath={1}&gamefile={2}&swfpath={3}&sa_com={4}&sa_run={5}&localrun={6}&lang={7}&logo={8}"/> ';
	htmlStr += '			     <param name="wmode" value="opaque"/> ';
	htmlStr += '		     </object> ';
	htmlStr += '         </div>';
	htmlStr += '     </body> ';
	htmlStr += ' </html> ';				
 
	// подставляем параметры
	htmlStr = StringUtil.substitute( htmlStr, "111111111", "rt/", "game.swf", "swf/", sa_com, "1", "1", "en", "1" );				
	trace(ApplicationDomain.currentDomain);				
	// чтоб SWF нормально загрузилась, помещаем html в sandbox (по умолчанию false)
	htmlLoader.placeLoadStringContentInApplicationSandbox = true;
 
	// слушатель окончания загрузки
	htmlLoader.addEventListener(Event.COMPLETE, onLoadComplete);				
 
	// грузим
	htmlLoader.loadString( htmlStr );
 
 
Проблема в том, что htmlLoader ищет подгружаемые swf в applicationDirectory а не в applicationStorageDirectory. Как можно это исправить?
__________________
Я вообще-то пыхер :)

Старый 10.06.2012, 14:29
a_[w] вне форума Посмотреть профиль Отправить личное сообщение для a_[w] Найти все сообщения от a_[w]
  № 2  
Ответить с цитированием
a_[w]

Регистрация: Dec 2005
Адрес: вне пространствавремени
Сообщений: 27
Попробуйте вместо app-storage:/
использовать (new File(File.applicationStorageDirectory.nativePath)).url
или сохраните временный HTML файл в хранилище и загружайте SWF локально
__________________
while(true){trace(Math.random());};

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

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

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


 


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


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