PDA

Просмотр полной версии : PHP и Flash


oceann
16.12.2008, 21:21
Моя общая задача - получить данные из Mysql для Flash. Хочу сделать это используя цепочку Mysql - PHP - XML - Flash. Точнее php скрипт на основе данных из Mysql динамически создает XML-документ. Проблема возникает на уровне PHP - Flash: мой динамически созданный XML не воспринимается Flash-ем.
Например, пишу в Flash такой простой скрипт.
my_xml = new XML();
my_xml.load('p.php');
my_xml.onLoad = function() {
trace (this['a'].attributes.name)
}
Если файл p.php содержит просто
<?xml version="1.0"?>
<item id="a" name="OK" />
то все срабатывает.
Если же я добавляю php команду, например,
<?xml version="1.0"?>
<item id="a" name="<?php echo 'OK' ?>" />
результата нет.
Я так понимаю, что Flash просто напросто не понимает PHP, хотя я нашла в сети много примеров, указующих на обратное. Или же его понимает только AS3 (у меня стоит MX)? Если же нет, подскажите, пожалуйста, в чем моя ошибка?

Division
16.12.2008, 21:59
oceann, ты флешку тестишь на сервере или сразу из среды? А то на первый взгляд симптомы похожи на то, что ты нажимаешь ctrl+enter и смотришь что в трейсе (:

UPD: и ещё кое-что. По умолчанию в php которкий open tag (http://ua2.php.net/ini.core) включен, так что <?xml бла бла бла должен восприниматься, как синтаксическая ошибка.

oceann
16.12.2008, 22:07
В даном случае сразу, но пробывала и на сервере, тоже не получалось. Хотя сейчас еще раз внимательно попробую на сервере и если не получится, выложу исходник. А из среды получаться не должно?

Division
16.12.2008, 22:14
Не должно (: По крайней мере я не знаю как.
Попробуй для начала просто в браузере зайти на p.php и посмотреть что будет.

oceann
17.12.2008, 00:05
Не получается :( Более того, столкнулась еще с одной проблемой. Выложив файлы на удаленный сервер, у меня там ни работает ни первый, ни второй вариант, при том что на локалхосте работает хотя бы первый.

Я немного модифицировала код, вместо треша указав выводить результат в текстовое поле:
_root.createTextField("name", 1, 10, 10, 100, 20);
_root.name.text='состояние: '+this['a'].attributes.name;

и создала 3 варианта
1) a.fla + a.php - файл .php, но самого php в нем нет (работает на только на локалхосте)
2) b.fla + b.php - файл .php с командой на php (не работает в обоих случаях)
3) c.fla + c.xml - файл .xml (работает в обоих случаях)

Прилагаю исходники.

flash33
17.12.2008, 00:21
Уберите <?xml version="1.0"?> - флеш понимает "правильный" DOM, а с верхней строкой он "неправильный"

oceann
17.12.2008, 00:36
О, спасибо! Помогло!!!!! :) :)
Правда, помогло только для удаленного файла. На локалхосте все равно не отображается, ну да ладно, это не главное. Жаль только, что не получается увидеть результат сразу, используя Ctrl+Enter :(

flash33
17.12.2008, 00:46
Возможна трабла с кодировкой вашего сервера - выдает то, что не "воспринимает" флеш. На моем все три варианта рабочие. А как Вы хотите что б работало по CTRL+Enter? У вас задействован серверный скрипт - так сразу не выйдет.

oceann
17.12.2008, 00:47
огромное спасибо!