|
|
|||||
Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
|
передача классов из PHP в AS3
Здравствуйте!
Подскажите кто нибудь пробовал передавать классы из пхп прямо в ас методом ПОСТ? Разбирал клиент одной игры и обнаружил, что там идут запрос пхп далее вот что происходит с полученным ответом addChild(this.loader); |
|
|||||
Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
|
Лишнее убрал оставил самое нужное.
package { import flash.display.*; import flash.events.*; import flash.net.*; public class Preloader_in_acc extends MovieClip { private var loader:Loader; private var preloaderBody:PreloaderBody; private var puidUser:String; public function Preloader_in_acc() { stage.scaleMode = StageScaleMode.SHOW_ALL; this.preloaderBody = new PreloaderBody(); this.preloaderBody.txt.autoSize = TextFieldAutoSize.CENTER; addChild(this.preloaderBody); if (loaderInfo.parameters["puid"] == undefined) { this.puidUser = "0"; } else { this.puidUser = loaderInfo.parameters["puid"]; } var variables:* = new URLVariables("***********"); var request_auto:* = new URLRequest(); request_auto.url = "****************"; request_auto.method = URLRequestMethod.POST; request_auto.data = variables; var loader_auto:* = new URLLoader(); loader_auto.dataFormat = URLLoaderDataFormat.VARIABLES; loader_auto.addEventListener(Event.COMPLETE, this.completeAutoRequest); loader_auto.addEventListener(IOErrorEvent.IO_ERROR, this.ioErrorAutoRequest); try { loader_auto.load(request_auto); } catch (e:Error) { preloaderBody.txt.text = "Load request error!"; } return; }// end function function completeAutoRequest(event:Event) : void { var request:URLRequest; var event:* = event; try { this.loader = new Loader(); this.loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.ioErrorHandler); this.loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, this.progressEvent); this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.progressComplete); request = new URLRequest(this.patio(event.target.data.em, event.target.data.pa)); this.loader.load(request); } catch (e:Error) { preloaderBody.txt.text = "Session error!"; } return; }// end function function ioErrorAutoRequest(event:IOErrorEvent) : void { this.preloaderBody.txt.text = "Error connect!"; return; }// end function private function ioErrorHandler(event:IOErrorEvent) : void { this.preloaderBody.txt.text = "IO Error!"; return; }// end function private function progressEvent(event:ProgressEvent) : void { this.preloaderBody.txt.text = Math.round(event.bytesLoaded / event.bytesTotal * 100) + "%"; return; }// end function private function progressComplete(event:Event) : void { removeChild(this.preloaderBody); this.preloaderBody = null; addChild(this.loader); return; }// end function // end function } } |
|
|||||
Loader автоматически интерпретирует загруженные данные, он распазнаёт: SWF-файлы либо файлы изображений (JPG, PNG или GIF).
В вашем примере php вообще не причём. Он может вернуть ссылку на swf, который уже загрузит флешка, либо swf сам по себе может лежать на сервере и ждать прямого запроса. Класс в виде "текстовых данных" загрузить во флешь хоть из php или ещё как - нельзя. Классы AS должны быть предварительно скомпилированны в swf или другой специальный формат файла, загрузив который, уже можно получить доступ к классам. пс. На самом деле, загрузить классы прямиком как текстовые данные с последующей компиляцией прямо на клиенте - теоретически возможно и наверное даже есть готовые библиотеки для этого, но это отдельные исключительные случаи.
__________________
Дети не должны знать о своих родителях |
|
|||||
В примере dataFormat у экземпляра URLLoader выставлен в URLLoaderDataFormat.VARIABLES. Это позволяет подтягивать переменные из пар "ключ=значение".
PHP: ActionScript: var vLoader:URLLoader = new URLLoader(); vLoader.dataFormat = URLLoaderDataFormat.VARIABLES; vLoader.addEventListener(Event.COMPLETE, OnVariablesLoaded); vLoader.load(new URLRequest('http://localhost/test.php')); ... private function OnVariablesLoaded(e:Event):void { trace(e.target.data.status); //ok } |
|
|||||
[+4 06.05.14]
|
После этого, я бы даже не стал смотреть этот код - писал инвалид. Достаточно проверки else
__________________
Марк Tween |
|
|||||
хаха, может в this.puidUser по умолчанию должно быть "0", а ты его инвалидом...
|
|
|||||
Цитата:
var source:String = (<![CDATA[ getlocal_0 pushscope getlocal_2 iffalse L0 getlocal_1 pushbyte 100 multiply convert_i setlocal_1 jump L1 L0: getlocal_1 pushshort 1000 multiply convert_i setlocal_1 L1: getlocal_1 returnvalue ]]>).toString(); methodBuilder.addAsmSource(source); Добавлено через 4 минуты Цитата:
__________________
return this... |
Часовой пояс GMT +4, время: 18:30. |
|
« Предыдущая тема | Следующая тема » |
|
|