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

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

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

Регистрация: Nov 2010
Сообщений: 497
Лоадер должен быть на серверах контакта. И game.swf должен грузиться в домены (App и Security) Loader'а. Только тогда все будет хорошо. Во всех остальных случаях исходный домен будет не тот. Если хочется запускать локально - используйте хак.

Старый 23.02.2012, 20:25
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 12  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
maxkar
Цитата:
Лоадер должен быть на серверах контакта. И game.swf должен грузиться в домены (App и Security) Loader'а. Только тогда все будет хорошо.
Хорошо! Всё тоже самое. Ничего не меняю. То есть вот так в Loader.swf:

Код AS3:
gameLoader.load(
    new URLRequest("http://????/Game.swf?"+(new Date()).getTime().toString()),
    new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain));
Гружу его ВКонтакт. Запускаю и где-то ошибка, так как Flash'ка повисла.

Старый 23.02.2012, 21:21
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 13  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
А какая ошибка то??? "Работает"/"не работает" - это плохая диагностика. Она даже не говорит, на каком шаге произошла ошибка.

Можно дебагером подключиться и посмотреть, что происходит. Можно на нужные события подписаться и куда-нибудь на сцену вывести текст/картинку/объект в зависимости от типа ошибки. У вас плеер дебажный в браузере или обычный?

Да и вообще "подвисать" неправильно! Может, у пользователя в момент загрузки картинок проблемы с сетью возникли. Или у контакта. Ваше приложение так и будет висеть или какое-нибудь вразумительное сообщение выведет?

Старый 23.02.2012, 21:33
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 14  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
Гружу его ВКонтакт. Запускаю и где-то ошибка, так как Flash'ка повисла.
Посмотрите дебагером, какая ошибка.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 23.02.2012, 21:42
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 15  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Ребят, тогда подскажите как на Google Chrome поставить Flash Player для отладки. Захожу на сайт Adobe, а мне пишут что у меня уже стоит проигрыватель. А как его удалить, я не нашёл.

Старый 23.02.2012, 22:10
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 16  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Плеер нужно взять здесь. Вам нужен plugin content debugger.

После этого можно попробовать переключить плеер, описано здесь. Удалить плеер из хрома может оказатсья сложно (проще выключить встроенную версию).

Ну или можно поставить другой бразуер (это может оказаться проще, чем настраивать хром).

Старый 23.02.2012, 22:23
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 17  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
maxkar
Так и сделал. Поставил Debug на IE (стыдно, но что же делать). В общем вот что мне он выдал:

Цитата:
SecurityError: Error #2121: Нарушение изолированной среды: Loader.content: http://cs303315.vk.com/[[IMPORT]]/????/Game.swf?1330021208255 не может осуществить доступ к http://????/bonfire.swf. Этого можно избежать посредством вызова Security.allowDomain.
at flash.display::Loader/get content()
at d.game.loading::MapLoad/GetData()
at d.game.render::RenderMap/Draw()
at d.game.manager::MapManager/OnAllObjectsLoadSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.loading::MapLoad/OnObjectLoadSuccess()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at d.game.loading::ObjectLoad/OnComplete()

Старый 23.02.2012, 22:37
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 18  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Вот. Уже гораздо лучше. До контакта дело не доходит (и там то, скорее всего, уже все нормально). В какие Application/Security домены грузится bonfier.swf? Вероятно, в bonfire.swf нужно прописать Security.allowDomain("*"). Иначе доступа к конетнту не будет. Или грузить bonfire.swf тоже в SecurityDomain.currentDomain (application domain может быть другой). Последнее для доступа к классам точно работает (без прописывания allowDomain), для Loader.content - не знаю.

Добавлено через 15 минут
Есть еще один вариант. Но он может оказаться менее красивым и сложнее в реализации.

Загрузку картинок из контакта можно сделать в Loader.swf. Game.swf в этом случае загружается в свой applicationDomain/securityDomain, разрешает всем доступ (allowDomain("*")). Для загрузки аватарок обращается к Loader.swf (доступ разрешен), та в свою очередь загружает картинку и извлекает из нее bitmapData (так как она на серверах контакта, но loadPolicyFile все равно должен быть установлен) и передает уже извлеченную bitmapData в Game.swf. Не нравится мне то, что сетевые сервисы (с кодом обработки ошибок и т.п.) могут оказаться размазаны по Game.swf и Loader.swf

Старый 24.02.2012, 09:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 19  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
http://www.flasher.ru/forum/blog.php?b=332
http://www.flasher.ru/forum/blog.php?b=209
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 29.02.2012, 18:08
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 20  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Всем доброго дня!

Запустил игру из контакта (на этот раз без Loader'а, а сразу Game.swf). Вот что мне выдаёт отладочный Flash Player в браузере Internet Explorer:

Цитата:
SecurityError: Error #2121: Нарушение изолированной среды: Loader.content: http://cs5436.vk.com/????/????.zip не может осуществить доступ к http://????/bonfire.swf. Этого можно избежать посредством вызова Security.allowDomain.
Это не swf с игрой, это просто объект на карте, который представляет из себя анимацию, поэтому он и засунут в swf. Не помню есть ли в нём скрипт внутри (хотя скорее всего есть в последнем кадре скрипт возврата на первый кадр чтобы по кругу воспроизводилась анимация). В общем что за Security.allowDomain мне надо сделать и что самое главное, где?

Самое интересное, что у меня на локальном компе это всё работает. Кидаю другому на комп и у него
то не работает. Закидываю в контакт и там тоже не работает.

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

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

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


 


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


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