PDA

Просмотр полной версии : Loader не показывает изображение


Crack3r
19.03.2013, 21:51
Здравствуйте!
Я пишу приложение для вконтакта, в нем использую флеш. Передо мной стоит следующая задача: мне нужно с помощью Loader'a показать картинку пользователю. Когда я проверяю мой код на локальных файлах, всё работает и всё чудесно показывается. А вот когда я загружаю всё на сервер и проверяю через вконтакт, на том месте, где должен быть Loader, просто ничего нет. Но притом обработчик события COMPLETE срабатывает, то есть флеш говорит, что картинка загрузилась, никакой ошибки нет. На мой взгляд, это кросс-доменная проблема, поэтому опишу ситуацию с доменами: само приложение у меня iframe, а не flash, то есть в страницу вконтакта встроен фрейм, который и является моим приложением, а в фрейм встраивается моя флешка. Флешка хостится на серверах вконтакта, фотография, которую я пытаюсь показать, тоже. Еще раз заново:

Домен iframe: hc.ru
Домен страницы: vk.com
Домен самой флешки: cs****.vk.me
Домен фотографии: cs****.vk.me (Отличный от домена флешки)

Если что-то не ясно или возникнут какие-то дополнительные вопросы -- пишите сюда, постараюсь объяснить всё максимально понятно.
Заранее благодарен за любые советы.

caseyryan
19.03.2013, 23:28
там при загрузке картинки надо указывать контекст (второй параметр метода load)

var context:LoaderContext = new LoaderContext(true); // для проверки файла политик
loader.load(urlRequest, context);

После этого в обработчике complete можно будет без выброса ошибки нарушения изолированной среды вызывать e.target.content
а в свой кроссдоменник обязательно нужно внести все домены контакта.
Это

vk.com
*.vk.com
vk.me
*.vk.me
userapi.com
*.userapi.com

хотя для тестов можно и все домены разрешить *

Crack3r
20.03.2013, 00:14
Спасибо большое.
Проблема оказалась не в кросс-доменности, а в том, что я показывал маскированное изображение, которое было очень маленьким и ничего не помещалось под то, где была маска :(
Я просто переместил изображение туда, где находится маска и всё заработало.