Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2015, 01:26
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 11  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от 60reg Посмотреть сообщение
а почему с этим кодом в php не работает???

PHP код:
function getContent() {
        echo 
"TEST...";
    } 
потому что есть ее описание, но нет вызова

PHP код:
<?php

function getContent() {
        echo 
"TEST...";
    }

getContent(); // вот он

?>

Старый 25.02.2015, 19:09
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 12  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Спасибо... с этим разобрался.
но.....
в классе Main не выводит onReply в трейсе, число из php в формате XML, только в классе Packet вот здесь
Код AS1/AS2:
trace("PACKET DATA:", this, unescape(String(data)));
,

вот так

Код:
<?xml version='1.0' encoding='utf-8'?>

<response>

    <user>

        <diamond>500</diamond>

    </user>

</response>


Последний раз редактировалось 60reg; 25.02.2015 в 21:48.
Старый 25.02.2015, 20:02
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Потому что он не ждет в качестве ответа XML. Он ждет URL переменные в формате свойство=значение.
Чтобы получать текст (в том числе и XML), нужно тип данных загрузчика поменять на TEXT
Да и вообще, формат XML избыточен. В данном случае намного лучше будет использовать JSON

Старый 25.02.2015, 21:47
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 14  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
вот как указано у меня в классе Main
Код AS3:
 var packet:Packet = new Packet("getContent", onReply); // передаем название метода, который нужно вызвать, и обработчик ответа
        function onReply(params:Object):void {
		// trace(params.reply);
				diamond.text=String(xml.user.diamond);
 
 
          }
в текстовом поле не выводит все пусто.

Старый 26.02.2015, 11:30
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 15  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4

перечитайте мой пост внимательнее
п.с. и вообще, откуда взялся вот этот xml.user.diamond?
я не вижу в коде где это объявляется

Старый 26.02.2015, 16:43
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 16  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
можешь пожалуйста помочь с кодом...
Уже несколько дней мучаюсь.

Старый 26.02.2015, 19:02
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 17  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Я привел полностью рабочий пример. Это выдернуто из готового проекта для соцсетей. Только аутентификация убрана. Если сделать все так же, то 100% будет работать.

Старый 26.02.2015, 19:55
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 18  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Спасибо всем за помощь, но у меня нихера не выходит. Во флеше пусто.

Старый 26.02.2015, 21:34
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 19  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Здесь не форум телепатов. Если что-то не выходит надо выкладывать весь свой проблемный код, и рассказывать все детали:
1) работает ли вообще сервер
2) если да, отдает ли он ответы через браузер, если нет, см. пункт 1
3) какой код на сервере
4) к какому адресу делается запрос

Либо воспользоваться советом из поста №2

Старый 26.02.2015, 23:00
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 20  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Вот.... выкладываю все на чем тестирую:

universall.php

PHP код:
<?php 

$method 
$_POST['method'];

getContent();

function 
getContent() { 
        echo 
'<?xml version="1.0" encoding="utf-8"?>

<response>

    <user>

        <diamond>500</diamond>

    </user>

</response>'

    } 


?>
вот класс Packet.as

Код AS3:
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);
			}
		}
	}
}
вот класс Main.as

Код AS3:
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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