![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jul 2009
Адрес: 12 37
Сообщений: 17
|
Написал на AS3 скрипт, который передает данные PHP файлу, а тот обращается к MySQL и на основе полученных данных генерирует XML, который загружает Flash.
Ну так вот. Когда я запускаю Flash'ку в среде разработки (Adobe Flash CS4), то данные в ней отображаются. Также они отображаются при ее запуске вне среды. Но вот когда я помещаю ее на HTML страницу данные уже не отображаются. Я изрыл весь интернет и узнал, что данная проблема может быть связана с политикой безопасности Flash Player'а, и что может момочь некий crossdomain.xml. Но при помещении такового в папку где находится Flash'ка ничего не меняется. содержание crossdomain.xml <?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
Adobe Flash Player 10 Adobe Flash CS4 Denwer 3 Последний раз редактировалось Gam6it; 27.07.2009 в 15:27. |
|
|||||
|
crossdomain.xml кладут не в папку, где флешка находится а в "root" вашего сайта.
Или почитайте про SecurityPolicy и как грузить crossdomain.xml если он в другой папке.
__________________
"I am the terror that flaps in the night…!" |
|
|||||
|
Регистрация: Jul 2009
Адрес: 12 37
Сообщений: 17
|
Проведем эксперимент №1
Создадим в Денвер'е, в папке home, новую дирректорию. Назовем ее simpletest (таково будет и имя нашего сайта). В папке simpletest создаем еще одну папку www. Сдесь создаем файл index.php (UTF-8), со следующим содержимым:
var loader:URLLoader = new URLLoader(); var quest:URLRequest = new URLRequest("http://simpletest/data.php"); loader.load(quest); loader.addEventListener(Event.COMPLETE, comp) function comp(e:Event):void { txt.text = XML(e.target.data); } При открытии адреса http://simpletest во всех 3х браузерах (FireFox 3.5 , Opera 9.64, IE8) данные передающиеся cо странице data.php , отображаются корректно. Значит политика безопасности флеш плеера скорее всего ни причем. Последний раз редактировалось Gam6it; 31.07.2009 в 00:49. |
|
|||||
|
Регистрация: Jul 2009
Адрес: 12 37
Сообщений: 17
|
Эврика, я понял в чем была проблема.
Мне надо было передать переменную (variable1.group=2) PHP-скрипту, и забрать полученный результат. И реализовал я это так. var request1:URLRequest = new URLRequest("http://test2/data2.php"); var variable1:URLVariables = new URLVariables(); var loader1:URLLoader = new URLLoader(); request1.method = URLRequestMethod.POST; variable1.group=2; request1.data = variable1; loader1.load(request1); loader1.addEventListener(Event.COMPLETE, loadXML); function loadXML(event:Event):void { var request2:URLRequest = new URLRequest("http://test2/data2.php"); var loader2:URLLoader = new URLLoader(); loader2.load(request2); loader2.addEventListener(Event.COMPLETE, buildXML); } function buildXML(event:Event):void { txt.text = event.target.data; } В нормальных же браузерах эта флэшка не отображала полученных данных. Потому что, если посмотреть на 2 URLLoader'а со стороны браузера, то каждый представляет собой отдельного пользователя. То есть первый URLLoader передает переменную php-файл? который ему выводит запрашиваемое содержимое на основе посланной переменной, и после этого второй URLLoader обращается к тому же php-скрипту, и тот ему ничего не выводит. Ниже представлен php скрипт, если кому интересно.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|