|
|
|||||
Цитата:
|
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
Спасибо... с этим разобрался.
но..... в классе Main не выводит onReply в трейсе, число из php в формате XML, только в классе Packet вот здесь , вот так Последний раз редактировалось 60reg; 25.02.2015 в 21:48. |
|
|||||
Потому что он не ждет в качестве ответа XML. Он ждет URL переменные в формате свойство=значение.
Чтобы получать текст (в том числе и XML), нужно тип данных загрузчика поменять на TEXT Да и вообще, формат XML избыточен. В данном случае намного лучше будет использовать JSON |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
вот как указано у меня в классе Main
в текстовом поле не выводит все пусто. |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
можешь пожалуйста помочь с кодом...
Уже несколько дней мучаюсь. |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
Спасибо всем за помощь, но у меня нихера не выходит. Во флеше пусто.
|
|
|||||
Здесь не форум телепатов. Если что-то не выходит надо выкладывать весь свой проблемный код, и рассказывать все детали:
1) работает ли вообще сервер 2) если да, отдает ли он ответы через браузер, если нет, см. пункт 1 3) какой код на сервере 4) к какому адресу делается запрос Либо воспользоваться советом из поста №2 |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
Вот.... выкладываю все на чем тестирую:
universall.php
package { import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; public class Packet { public static const HOST: String = "http://server/server/"; public static const SCRIPT: String = "universal.php"; private var _callback: Function = null; public function Packet(method:String, callback:Function, params:Object = null) { _callback = callback; var loader: URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); loader.dataFormat = URLLoaderDataFormat.VARIABLES; var vars:URLVariables = new URLVariables(); vars['method'] = method; if (params != null) { for (var i:String in params) { vars[i] = params[i]; } } var rand: String = "?" + method; var request:URLRequest = new URLRequest(Packet.HOST + Packet.SCRIPT + rand); request.method = URLRequestMethod.POST; request.data = vars; trace(request.data.toString()); try { loader.load(request); } catch (e:Error) { trace(e.getStackTrace()); } } private function onSecurityError(e:SecurityErrorEvent):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); } private function onIOError(e:IOErrorEvent):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); trace("INPUT / OUTPUT ERROR"); } private function onComplete(e:Event):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); var data:Object = e.target.data as Object; trace("PACKET DATA:", this, unescape(String(data))); if (_callback != null) { _callback.call(null, data); } } } } package { import flash.net.*; import flash.display.*; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { var xml:XML = new XML(); public function Main():void { var packet:Packet = new Packet("getContent", onReply); function onReply(params:Object):void { // trace(params.reply); var xml:XML = new XML(loader.data); diamond.text = String(xml.user.diamond); } } } } |
Часовой пояс GMT +4, время: 15:23. |
|
« Предыдущая тема | Следующая тема » |
|
|