Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Никак не подгружается swf с другого домена (http://www.flasher.ru/forum/showthread.php?t=130709)

Limy 02.10.2009 12:16

Никак не подгружается swf с другого домена
 
Люди, человеки, подскажите в чем может быть проблема.

У меня необходима загрузка в myApp.swf, который находиться на domain1.ru, другого swf (remoteApp.swf), который находиться на домене domain2.ru. Документации по этому виду нашел уже уйму и все они одинаковые, с небольшой разницей, но у меня никак это не работает.

В myApp.swf прописан следующий код:
Код AS3:

import flash.display.*; 
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
flash.system.Security.loadPolicyFile("http://domain2.ru/crossdomain.xml");
// Этой строки не было, и как я понял они нужна только в том случае, когда crossdomain.xml находиться в отличной от корневой директории.
 
var rect:Shape = new Shape();
rect.graphics.beginFill(0xf0f0f0);
rect.graphics.drawRect(0, 0, 607, 590);
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
ldr.x = 23.5;
ldr.y = 142;
var url:String = "http://domain2.ru/remoteApp.swf";
var urlReq:URLRequest = new URLRequest(url);
var ldrContext:LoaderContext = new LoaderContext(true);
//var ldrContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain); - эта строка стояла ранее, но эффект тот же что и с предыдущей.
ldr.load(urlReq, ldrContext);
addChild(ldr);

crossdomain.xml
Код:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

В итоге ничего не работает и я уже не знаю как и что мне делать. Помогите пожалуйста, заранее очень благодарен. :eek: :umnik2:

cybercub 02.10.2009 13:32

думаю хорошо иметь дебажный плеер и знать какая ошибка выдается 8)

Limy 02.10.2009 17:34

Цитата:

Сообщение от cybercub (Сообщение 855135)
думаю хорошо иметь дебажный плеер и знать какая ошибка выдается 8)

А какой плеер посоветуешь? И как debug делать? Я такого ни разу не делал, sorry за глупость... :rolleyes:

random13 02.10.2009 17:39

пфф сашибись, короче все что пишут на форуме мы совершенно игнорируем и не читаем,

http://www.adobe.com/support/flashplayer/downloads.html
лучше вот этот и только вот этот)))

Limy 02.10.2009 18:11

Вообщем я там и не понял как debug сделать на странице сервера, нажимая правой кнопкой на swf и выбирая пункт "Отладчик" появляется окошко, где можно выбрать Локальный компьютер или Другой компьютер. Выбрав локальный она мне вывела ошибку: Adobe Flash Player 10 не удалось подключиться к отладчику или профилировщику.

но я сделал по другому и получил вот такой вот ответ при дебаге:
Код:

Attemping to launch and connect to Player using URL E:\www\home\elvesound.ru\vk\vk-promo.swf
[SWF] E:\www\home\elvesound.ru\vk\vk-promo.swf - 232736 bytes after decompression
Предупреждение: Для домена vk.elvesound.ru не указана метаполитика. Применяется метаполитика по умолчанию "master only" ("только мастер"). Эта конфигурация исключается. Чтобы исправить эту проблему, перейдите на веб-страницу http://www.adobe.com/go/strict_policy_files_ru.


[SWF] /preview.swf - 617874 bytes after decompression
Debug session terminated.

Но сам факт такой, что доступ к crossdomain.xml реально есть. Адрес такой: http://vk.elvesound.ru/crossdomain.xml Я так понимаю crossdomain.xml - это и есть та самая метаполитика, потому что другой информации на офф. сайте не нашел.

Добавлено через 6 минут
Сейчас поставил на файл crossdomain.xml права 777 и debug вообще не показал ни одной ошибки, но удаленный swf так и не загрузился...

Добавлено через 9 минут
Повторный debug показал туже ошибку. Вообще если честно ничего не понимаю.

Добавлено через 24 минуты
Нарыл схожую тему на форуме, добавил в свой crossdomain.xml следующую строчку, но ничего положительного не произошло:
Код:

<site-control permitted-cross-domain-policies="all"/>
Добавлено через 33 минуты
И вот еще, при debug откомпилированное приложение зависает. Это так и должно быть?

Alex Lexcuk 02.10.2009 20:16

Код AS3:

var context:LoaderContext = new LoaderContext();
if (Security.sandboxType!='localTrusted') context.securityDomain = SecurityDomain.currentDomain;
trace(Security.sandboxType);
context.applicationDomain = ApplicationDomain.currentDomain;
 
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("http://www.murmadillo.tut.su/rain.swf");
ldr.load(urlReq,context);
//ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
addChild(ldr);

как-то так, вы наверно собрали сервер на линухе, раз можете поставить права на файл crossdomain.xml 777 (в виндовсе таким заниматься нет надобности), вобщем надо ваш самодельный сервер, который у вас на компе назвать с www (без www ниче не работает), а вообще чето нифига не пойму какой там линух, у вас же диск E: тогда при чем тут другой домен если у вас флешка на диске E? А че она тогда полику спрашивает,? залейте флешку на один сайт и грузите ее с сайта, а не с диска Е.

ха прикол... Попробовал не работает, блин, а http://www.murmadillo.tut.su/m/rain.swf грузит зараза, наверно с корня сайта нельзя swf-ки грузить.
можете затестить c другого домена

http://www.murmadillo.narod.ru/fla/enDom.html

fla файл туда-же сунул
http://www.murmadillo.narod.ru/fla/enDom.fla

в общем раньше бул такой кроссдоменник
Код:

<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

а сегодня я разволновался и дописал его (напрасно конечно)
Код:

<cross-domain-policy>
<allow-access-from domain="*" secure="false"/>
</cross-domain-policy>

в логи сыплятся предупреждения
Код:

Предупреждение: Игнорирование атрибута "secure" (безопасность) в файле политики от http://www.murmadillo.tut.su/crossdomain.xml.  Атрибут "secure" разрешен только в файлах политики для сокета и HTTPS.  Дополнительные сведения см. на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Предупреждение: Для домена www.murmadillo.tut.su не указана метаполитика. Применяется метаполитика по умолчанию "master only" ("только мастер"). Эта конфигурация исключается. Чтобы исправить эту проблему, перейдите на веб-страницу http://www.adobe.com/go/strict_policy_files_ru.

А адобы быки переходиш по этому УРЛу появляется 404

Limy 03.10.2009 14:28

Вообщем спасибо, все заработало, но только с другим swf, который я создал как тестовый. Основной же подгружаться не хочет.

Попробовал даже через пуп натянуть, т.е. в тестовой swf, которая лежит вместе с нужной нам swf, засунул подгрузку нужной. А swf на другом домене удачно подгружает тестовый swf и по идеи (как я подумал) подгрузит нужный нам, но такого чудотворного явления не произошло. Появилась следующая ошибка:
Код:

Error #2044: Необработанный IOErrorEvent:. text=Error #2036: Загрузка не завершена.


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

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