|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2011
Адрес: Ижевск, Россия
Сообщений: 10
|
Объект обмена между PHP + Flash, ваши мнения.
Здравствуйте, уважаемые!
Хочу отдать вам на суд объект обмена данными между php и flash(AS3). Желаю узнать ваши мнения и всевозможные поправки/рекомендации. Предупрежу сразу - отправка данных - переменные, получение - архивная строка, сжатая gzcompress($string, 9); 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)); } } } } P.S. Если кто-то напишет "Я могу и лучше", не будет ли он любезен сказать: где лучше и как, потому как я полный новичёк в этом деле и тоже хочу научиться писать программы. |
|
|||||
если вы хотите делиться своими идеями и тем более, чтобы ктото читал ваш код, вам необходимо ознакомиться с этим. код очень неочень ну и вложенные функции...
+ импорты надо все делать в одном месте в теле пакета
__________________
мира и гармонии Последний раз редактировалось 3p.station; 19.06.2011 в 01:42. |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Оригинал: Цитата:
Цитата:
В этом "переводе" такого бреда полно. Забыть как страшный cон и НИКОГДА, НИКОГДА никому не показывать.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
1. "Добавьте горсть белены" 2. "Добавьте горсть волчьих ягод" Второй перевод не сильно лучше первого. Да, опасного там меньше. Но смысл порушен в целом в той же степени -- если в одном пирог Вы будете выпекать в холодильнике, то в другом тесто будете делать без воды. А так -- да, отличные переводы. Подспорье тем, у кого трудности с языком но очень хочется готовить. Де-факто в обоих случаях это не перевод, а "вольный пересказ того, как Имярека угораздило понять оригинал".
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Насчет сеттеров. Иногда они требуют разную область видимости, а это невозможно. Так что данный перевод дезинформирует пользователя (мол так нелья), что не есть гуд.
И я думаю, что теме место в разделе "Серверные технологии и Flash".
__________________
RTFM Последний раз редактировалось S-ed; 19.06.2011 в 15:56. |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Есть мнение, что геттеры и сеттеры не должны иметь разную область видимости -- это аномалия проектирования. К примеру, в 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 |
Опции темы | |
Опции просмотра | |
|
|