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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.05.2018, 23:26
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 21  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Цитата:
Сообщение от Appleman Посмотреть сообщение
Друзья!

Вот что у меня получилось по части использования loader-ов. Файл находит по адресу и даже вроде как загружает. Но я никак не могу сообразить, как мне теперь его вернуть.

Код AS3:
public function getLoadedAsset(fileID: String) : Bitmap 
		{
			var file: File = File.applicationDirectory.resolvePath("assets" + File.separator + "backgrounds" + File.separator + fileID + PNG);
			var request: URLRequest = new URLRequest(file.url);
 
			trace(file.url); // Показывает правильный путь
 
			var loader: Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
			loader.load(request);
			trace(loader.content); // null			
		}
 
		private function completeHandler(e: Event) : void
		{
			var loader: Loader = Loader(e.target.loader);
			var image: Bitmap = Bitmap(loader.content);
			trace(image); // [object Bitmap]
		}
То есть как мне вернуть битмапку из метода getLoadedAsset, когда она становится доступной только в методе completeHandler?
Не совсем православный, но самый очевидный и рабочий вариант - через функцию-callback
Код AS3:
public function getLoadedAsset(fileID: String, callback:Function) : void
		{
			var file: File = File.applicationDirectory.resolvePath("assets" + File.separator + "backgrounds" + File.separator + fileID + PNG);
			var request: URLRequest = new URLRequest(file.url);
 
			var loader: Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function():void 
                            {
                                 var loader: Loader = Loader(e.target.loader);
                                 var image: Bitmap = Bitmap(loader.content);
                                 callback(image);
                            });
			loader.load(request);		
		}
__________________
while(live()) { hope(); }

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

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

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


 


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


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