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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.11.2011, 01:51
pirivet вне форума Посмотреть профиль Отправить личное сообщение для pirivet Найти все сообщения от pirivet
  № 1  
Ответить с цитированием
pirivet

Регистрация: Nov 2011
Сообщений: 2
По умолчанию AS3 класс для работы с PHP

Пытаюсь написать свой собственный класс AS3 для общения с PHP.

Не получается. Реально ли такое?

Вот мой не очень рабочий вариант:

main.as

Код AS3:
package 
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.filters.BitmapFilterType;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.text.TextField;
	import flash.ui.Mouse;
 
	public class Main extends Sprite
	{
		private var button: Sprite = new Sprite();
		private var txt: TextField = new TextField();
		private var bText: TextField = new TextField();
 
        public function Main(): void
        {
			bText.text = "Button";
			bText.x = 110;
			bText.y = 50;
			bText.width = 50;
			bText.height = 20;
			bText.selectable = false;
			bText.mouseEnabled = false;
 
			button.graphics.beginFill(0x0080FF, 0.5);
			button.graphics.drawRoundRect(50, 50, 150, 20, 15, 15);
			button.graphics.endFill();
			button.contains(bText);
			button.addChild(bText);
			button.buttonMode = true;
 
			txt.x = 70;
			txt.y = 100;
			txt.text = "Text";
			txt.height = 150;
			txt.width = 200;
 
 
			addChild(button);
			addChild(txt);
 
			button.addEventListener(MouseEvent.CLICK, on_cl);
		}
 
		private function onik(): void
		{
			var x: Loader = new Loader();
			x.onLoad = function()
			{
				trace(x.getV);
 
				txt.text = x.getV;
			}
 
			trace("getTr = " + x.getV);
 
		}
 
		private function on_cl(e: MouseEvent): void
		{
			onik();
		}
	}
}
loader.as

Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.text.TextField;
 
	public class Loader
	{
		public var loader: URLLoader = new URLLoader();
		public var onLoad: Function;
 
        public function Loader(): void
        {
			load();
 
			loader.addEventListener(Event.COMPLETE, loader_onLoad);
		}
		private function load(): void
		{
			var req: URLRequest = new URLRequest("http://lenta/00.php"); // Вы можете заменить на свой сайт
			req.method = URLRequestMethod.POST;
			req.data = 'yea=Да&noa=Нет'; // Передача переменных с помощью POST-запроса. Вы можете изменить переменные соответствуя своему php-файлу
			this.loader.load(req);
 
		}
 
		private function loader_onLoad(e: Event): void
		{
			trace("trace = " + loader.data);
			onLoad()
		}
 
		public function get getV(): String
		{
			return "getV  = " + this.loader.data;
		}
	}
}
Хочу чтобы то, что передает нам PHP выводилось либо в какую-то переменную, либо возвращалось куда-то.
А у меня получается только трейсить.

Заранее спасибо =)


Последний раз редактировалось pirivet; 29.11.2011 в 05:50.
Старый 29.11.2011, 08:39
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 2  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Код AS3:
private function load(): void {
	var req: URLRequest = new URLRequest("http://lenta/00.php"); // Вы можете заменить на свой сайт
	req.method = URLRequestMethod.POST;
	req.data = 'yea=Да&noa=Нет'; // Передача переменных с помощью POST-запроса. Вы можете изменить переменные соответствуя своему php-файлу
	this.loader.load(req);
 }
При всём уважении — это GET запрос. С тем же успехом, я мог конкатенировать строку из переменной req.data с req.url и получить тот же результат.
Гораздо разумнее было бы использовать класс URLVariables. Например, вот так:
Код AS3:
<...>
var variables:URLVariables = new URLVariables();
variables.yea = 'Да';
variables.noa = 'Нет';
<...>
request.method = URLRequestMethod.POST;
request.data = variables;
this.loader.load(request)
А чтобы получить данные от сервера в переменную, можно использовать класс JSON. Например fp11 поддерживает его нативно. В этом случае, ваш слушатель завершения загрузки будет выглядеть так:
Код AS3:
private function loader_onLoad(e:Event): void {
	var response:Object = JSON.parse(loader.data);
}
Ещё очень полезно будет наследовать ваш класс лоадера от EventDispatcher и сообщать классу родителю (держателю инстанса) тот факт, что загрузка завершена и он может забирать респонс.

И ещё. Это важно. ПОЖАЛУЙСТА, слушайте событие URLLoader'а IOErrorEvent.IO_ERROR. Я уже заколе^W^W^W. Очень грустно подвешивать дебажный плеер из-за этой ошибки каждый раз, гуляя по интернету.
__________________
Дебаггер не предлагать

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
http://www.bytearray.org/?p=122
http://code.google.com/p/e4xu/source...2Fwvxvws%2Fnet
__________________
Я просто добрый шутник.

Старый 06.12.2011, 08:55
pirivet вне форума Посмотреть профиль Отправить личное сообщение для pirivet Найти все сообщения от pirivet
  № 4  
Ответить с цитированием
pirivet

Регистрация: Nov 2011
Сообщений: 2
Цитата:
Сообщение от BuKT Посмотреть сообщение
Код AS3:
private function load(): void {
	var req: URLRequest = new URLRequest("http://lenta/00.php"); // Вы можете заменить на свой сайт
	req.method = URLRequestMethod.POST;
	req.data = 'yea=Да&noa=Нет'; // Передача переменных с помощью POST-запроса. Вы можете изменить переменные соответствуя своему php-файлу
	this.loader.load(req);
 }
При всём уважении — это GET запрос. С тем же успехом, я мог конкатенировать строку из переменной req.data с req.url и получить тот же результат.
Гораздо разумнее было бы использовать класс URLVariables. Например, вот так:
Код AS3:
<...>
var variables:URLVariables = new URLVariables();
variables.yea = 'Да';
variables.noa = 'Нет';
<...>
request.method = URLRequestMethod.POST;
request.data = variables;
this.loader.load(request)
А чтобы получить данные от сервера в переменную, можно использовать класс JSON. Например fp11 поддерживает его нативно. В этом случае, ваш слушатель завершения загрузки будет выглядеть так:
Код AS3:
private function loader_onLoad(e:Event): void {
	var response:Object = JSON.parse(loader.data);
}
Ещё очень полезно будет наследовать ваш класс лоадера от EventDispatcher и сообщать классу родителю (держателю инстанса) тот факт, что загрузка завершена и он может забирать респонс.

И ещё. Это важно. ПОЖАЛУЙСТА, слушайте событие URLLoader'а IOErrorEvent.IO_ERROR. Я уже заколе^W^W^W. Очень грустно подвешивать дебажный плеер из-за этой ошибки каждый раз, гуляя по интернету.
Объясни поподробнее пожалуйста, желательно с кодом =)

Я сам изучаю - это не курсак и не диплом

Маюсь неделями, а никак не получается.


Последний раз редактировалось pirivet; 10.12.2011 в 00:35.
Старый 13.12.2011, 14:03
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 5  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Куда уж подробнее? Какой _ещё_ код нужен?
__________________
Дебаггер не предлагать

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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