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

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

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

Регистрация: Jun 2011
Сообщений: 12
По умолчанию Путаются флешки с ассетами, загруженными BulkLoader-ом

Здравствуйте.

Разрабатывая приложение для вконтакта, неожиданно наткнулся на странную багу и никак не могу понять в чем причина. Прошу прощения, если создал тему не в том разделе, но мне кажется, к API вконтакта она не относится.

Суть в следующем: у меня есть несколько swf-ок с ассетами, которые я загружаю со своего сервера при старте приложения. Для загрузки и управления используется BulkLoader. Для упрощения понимания, обозначим загружаемые флешки так:
Код AS3:
_loader.add(_uri1.toString(), { id: "asset1", context: _LdrContext });
_loader.add(_uri2.toString(), { id: "asset2", context: _LdrContext });
_loader.addEventListener(BulkLoader.COMPLETE, _assets_complete_func);
_loader.addEventListener(BulkLoader.ERROR, _assets_error_func);
_loader.addEventListener(BulkLoader.PROGRESS, _assets_progress_func);
_loader.start();
На самом деле, процесс загрузки более сложный, но не в нем суть. Т.к. сами по себе ассеты загружаются правильно и четко.
Доступ к конкретным ассетам организован так:
Код AS3:
	public function getAssetClass(asset_id:String, class_name:String):Class {
	var res:Object = _loader.getContent(asset_id);
	if(res) {
		try {
			var cl:Class = res.loaderInfo.applicationDomain.getDefinition(class_name) as Class;
		} catch(e) {
			return null;
		}
	 	return cl;
	} else {
		return null;
	}
}
public function createAssetSprite(assetCollection:String, assetClassName:String):Sprite {
	var assetClass:Class = getAssetClass(assetCollection, assetClassName);
	var art:Sprite = null;
	if(!assetClass) {
		var noimg = ((new NoImage()) as Sprite);
	} else {
		var bmp:Bitmap = new assetClass() as Bitmap;
		art = new Sprite();
		art.addChild(bmp);
	}
	return art;
}
Внутри приложения обращаюсь к ассетам:
Код AS3:
	_currentImage = _assetManager.createAssetSprite(asset_id, image_id);
И, собственно, в чем проблема: запуская приложение из вконтакта, вне зависимости какой asset_id я передаю в метод createAssetSprite, результирующий спрайт всегда берется из одной и той же флешки.
Поясню на примере: asset1 - это набор аватаров для мальчиков, asset2 - аватары для девочек, кликая на кнопку юзер выбирает свой пол. Так вот из вконтакта показываются либо только мальчики, либо только девочки. Когда запускаю то же самое приложение из CS5.5 или просто swf-ку из винды - с каждым кликом мальчик/девочка чередуются, т.е. все происходит как и задумывалось.
Подскажите, пожалуйста, в чем может быть проблема? Контролирует ли как-то вконтакт подгружаемые флешки? Может быть как-то кэш браузера влияет?

Спасибо.

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

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

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


 


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


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