Я пытаюсь получить некоторые базовые данные, переданные от PHP к Flash. Из чтения по теме я понимаю, что лучший способ – создать XML с PHP, а затем прочитать его во Flash. Я пытаюсь начать просто так, вот мой PHP-код:
<?php header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; echo "<userData>"; echo "<firstName>John</firstName>"; echo "<lastName>Smith</lastName>"; echo "</userData>"; ?>
И вот мой код Flash:
var xml:XML = new XML(); var url:URLRequest = new URLRequest("data.php"); var loader:URLLoader = new URLLoader(url); loader.addEventListener("complete", xmlLoaded); function xmlLoaded(event:Event):void { xml = XML(loader.data); trace("Data loaded."); trace (loader.data); };
Я видел некоторые учебники, которые используют этот подход, но он работает, но во Flash я получаю эту ошибку:
TypeError: Ошибка # 1088: Разметка в документе, следующей за корневым элементом, должна быть хорошо сформирована.
Может ли кто-нибудь определить, почему я получаю эту ошибку или предоставляю другой способ сделать это?
Попробуйте добавить разметку <data>:
<?php header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; echo "<data>"; echo "<userData>"; echo "<firstName>John</firstName>"; echo "<lastName>Smith</lastName>"; echo "</userData>"; echo "</data>"; ?>
Я не эксперт в flash, но думаю, что следующая ссылка может помочь вам http://www.lashf.com/page/Flash_and_PHP http://forums.adobe.com/message/4301986
Очень ясно, что ваш формат XML не принят FLASH. FLASH читает очень форматированный XML, поэтому вам нужно быть очень точным в том, как вы его пишете.
Я предлагаю использовать php класса XML для создания вашего XML, такого как DOMDocument. Я использую этот класс в своем проекте для FLASH, и его работы прекрасны.
Удачи.