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

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

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

Регистрация: Feb 2011
Адрес: Ижевск, Россия
Сообщений: 10
Post Объект обмена между PHP + Flash, ваши мнения.

Здравствуйте, уважаемые!
Хочу отдать вам на суд объект обмена данными между php и flash(AS3).
Желаю узнать ваши мнения и всевозможные поправки/рекомендации.

Предупрежу сразу - отправка данных - переменные, получение - архивная строка, сжатая gzcompress($string, 9);

Код AS3:
package sl_pkg
{
 
	import flash.net.URLVariables;
	import flash.net.URLLoaderDataFormat;
	import flash.events.EventDispatcher;
 
	public class send_load extends EventDispatcher
	{
		//событие. окончание получения данных с сервера
		public static const DATA_LOADED:String = "loaded";
		//данные, полученные с сервера строка
		public var serv_data_string:String = "NIL";
		//данные, полученные с сервера массив
		public var serv_data_array:Array = new Array();
 
		public function send_load()
		{
			// constructor code
		}
 
		public function server_send_load(post_data:String):void
		{
			import flash.events.Event;
			import flash.net.URLLoader;
			import flash.net.URLRequest;
			import flash.net.URLRequestMethod;
			import flash.net.URLVariables;
			import flash.net.URLLoaderDataFormat;
			import flash.utils.ByteArray;
 
 
			//создаем запрос
			var URL_request:URLRequest= new  URLRequest("http://localhost/mobGame/script/request_analyzer.php");
			//метод передачи данных - POST
			URL_request.method = URLRequestMethod.POST;
			//заполняем запрос
			var URL_vars:URLVariables = new URLVariables(post_data);
			//устанавливаем формат данных как переменные
			URL_vars.dataFormat = URLLoaderDataFormat.VARIABLES;
			//заносим данные в запрос
			URL_request.data = URL_vars;
 
			//создаем приемник
			var URL_loader :URLLoader = new URLLoader();
			//слушатель
			URL_loader.addEventListener(Event.COMPLETE, receive_response);
			URL_loader.dataFormat = URLLoaderDataFormat.BINARY;
			URL_loader.load(URL_request);
 
 
			//тут храним ответ от сервера
			var serv_data:String = 'php_error=003';
 
			//обработка ответа из sendlogin.php
			function receive_response(e:Event):void
			{
				var data_byteArray:ByteArray = e.target.data;
 
 
				var ab:ByteArray = new ByteArray();
				ab.writeMultiByte('ss=1','x-ansi');
				ab.compress();
				trace(ab,ab.length, ab[3].toString(16));
 
				trace(data_byteArray,data_byteArray.length, data_byteArray[3].toString(16));
 
				data_byteArray.uncompress();
 
 
 
				//var loader:URLLoader = URLLoader(e.target);
				//получение строки данных
				serv_data_string = data_byteArray.toString();//new URLVariables(loader.data).toString();
				trace(serv_data_string);
				var serv_data_splitted_pairs = serv_data_string.split("&");
				var subarray:Array = new Array();
				//получение ассоциативного массива данных
				for each (var pair:String in serv_data_splitted_pairs)
				{
					subarray = pair.split("=");
					serv_data_array[subarray["0"]] = subarray["1"];
				}
 
 
				URL_loader.removeEventListener(Event.COMPLETE, receive_response );
				dispatchEvent(new Event(send_load.DATA_LOADED));
			}
		}
	}
}
Событие DATA_LOADED - для отслеживания окончания загрузки данных.

P.S. Если кто-то напишет "Я могу и лучше", не будет ли он любезен сказать: где лучше и как, потому как я полный новичёк в этом деле и тоже хочу научиться писать программы.

Старый 19.06.2011, 01:29
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 2  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
если вы хотите делиться своими идеями и тем более, чтобы ктото читал ваш код, вам необходимо ознакомиться с этим. код очень неочень ну и вложенные функции...

+ импорты надо все делать в одном месте в теле пакета
__________________
мира и гармонии


Последний раз редактировалось 3p.station; 19.06.2011 в 01:42.
Старый 19.06.2011, 01:51
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 3  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
И типизации нет.
__________________
тут я

Старый 19.06.2011, 02:22
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 4  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Нубский вопрос: а, разве gzip не декомпрессится до попадания во флешку? Средствами браузера.

Старый 19.06.2011, 02:28
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от 3p.station Посмотреть сообщение
ознакомиться с этим.
С этим на надо знакомится. Это надо забыть как страшный сон.

Оригинал:

Цитата:
Parameterless methods should generally not be named getFooBar() or setFooBar(); these should be implemented as getter/setters instead.
Так называемый "перевод":

Цитата:
Параметризующие методы нельзя называть getFooBar() и setFooBar(); они должны быть реализованы в виде геттеров/сеттеров.
Пусть "переводчик" не осознает разницы между "нельзя называть" и "как правило не следует называть". Это печально, но ничего уж не поделаешь. Но перевести тривиальное "Parameterless" как "Параметризующие" (параме.... что делающие?!) -- это полный финиш. Двухнедельный курс эвтаназии три раза в день после еды.

В этом "переводе" такого бреда полно.

Забыть как страшный cон и НИКОГДА, НИКОГДА никому не показывать.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 19.06.2011, 09:48
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 6  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
ну для знатоков инглиша там есть ссыль на оригинал, + еще один перевод на русском, но в общем твою идею понял
__________________
мира и гармонии

Старый 19.06.2011, 11:14
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 7  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от 3p.station Посмотреть сообщение
ну для знатоков инглиша там есть ссыль на оригинал, + еще один перевод на русском, но в общем твою идею понял
Чтобы было понятнее -- аналогия. Представьте себе, что у Вас есть поваренная книга. В ней рецепт с фрагментом "add a handful of blueberries" и два перевода:

1. "Добавьте горсть белены"
2. "Добавьте горсть волчьих ягод"

Второй перевод не сильно лучше первого. Да, опасного там меньше. Но смысл порушен в целом в той же степени -- если в одном пирог Вы будете выпекать в холодильнике, то в другом тесто будете делать без воды. А так -- да, отличные переводы. Подспорье тем, у кого трудности с языком но очень хочется готовить.

Де-факто в обоих случаях это не перевод, а "вольный пересказ того, как Имярека угораздило понять оригинал".
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 19.06.2011, 13:48
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 8  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
может есть более осознанный перевод ?
__________________
мира и гармонии

Старый 19.06.2011, 15:52
S-ed вне форума Посмотреть профиль Отправить личное сообщение для S-ed Найти все сообщения от S-ed
  № 9  
Ответить с цитированием
S-ed
 
Аватар для S-ed

Регистрация: Jul 2001
Адрес: SPb.RU
Сообщений: 148
Отправить сообщение для S-ed с помощью ICQ
Насчет сеттеров. Иногда они требуют разную область видимости, а это невозможно. Так что данный перевод дезинформирует пользователя (мол так нелья), что не есть гуд.

И я думаю, что теме место в разделе "Серверные технологии и Flash".
__________________
RTFM


Последний раз редактировалось S-ed; 19.06.2011 в 15:56.
Старый 19.06.2011, 16:37
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от S-ed Посмотреть сообщение
Насчет сеттеров. Иногда они требуют разную область видимости, а это невозможно. Так что данный перевод дезинформирует пользователя (мол так нелья), что не есть гуд.
Есть мнение, что геттеры и сеттеры не должны иметь разную область видимости -- это аномалия проектирования. К примеру, в UML Вы просто никак не сможете описать свойство, которое public на чтение и private на запись. Хочется сделать приватный "сеттер" -- назовите его assignFoobar вместо setFoobar.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

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

Теги
as3 + server , Flash + PHP
Опции темы
Опции просмотра

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

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


 


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


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