![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 13
|
Тема может и избита, но ответа я так и не нашёл....
Вообщем суть вопроса: Есть вот такой код из Файл1.as var chSendData:connectToDB = new connectToDB(mcErr); this.chLineAll = chSendData.chData(this.chLine.text+"\n"); вот реализация connectToDB из Файл2.as public function chData(chString:String):String { this.strChatLine = ""; this.urlRequestScript = new URLRequest("http://10.8.98.11/magic.ua/php/chat.php") this.urlRequestScript.method = URLRequestMethod.POST; this.urlLoaderData.addEventListener(Event.COMPLETE, sendChatString); this.urlVarible.strChat = chString; this.urlRequestScript.data = this.urlVarible; this.urlLoaderData.dataFormat = URLLoaderDataFormat.TEXT; try { this.urlLoaderData.load(this.urlRequestScript); } catch (err:Error) { var mcURLErr:errWindow = new errWindow("Ошибки при передаче данных в БД", this.mcErr); } return this.strChatLine; //Отрабатывает раньше, чем this.strChatLine принимает значение от РНР } internal function sendChatString(e:Event):void { this.strChatLine = e.target.data; var mcURLErr:errWindow = new errWindow(this.strChatLine, this.mcErr); this.urlLoaderData.removeEventListener(Event.COMPLETE, sendChatString); } Так вот сам вопрос как сделать задержку, что б this.strChatLine принимал значение и только потом отрабатывал return!? пробовал сделать вот так но тогда флешка вылетает по таймауту, и к тому же это не есть хорошо. |
|
|||||
|
ретурн тут никак не отработает... только на листенер окончания загрузки ставить дальнейшие действия...
|
|
|||||
|
Регистрация: Oct 2009
Сообщений: 13
|
Подскажите пожалуйста, как это сделать.
|
|
|||||
|
например событием
|
|
|||||
|
this.urlLoaderData.contentLoaderInfo.addEventLisener(Event.INIT, initListener)
на листенер нужно сажать код который должен работать после завершения загрузки |
|
|||||
|
Цитата:
обработчик окончания загрузки у товарища и так есть: по теме: такого результата: var chSendData:connectToDB = new connectToDB(mcErr); this.chLineAll = chSendData.chData(this.chLine.text+"\n"); можно попробовать так: internal function sendChatString(e:Event):void { this.strChatLine = e.target.data; var mcURLErr:errWindow = new errWindow(this.strChatLine, this.mcErr); this.urlLoaderData.removeEventListener(Event.COMPLETE, sendChatString); dispatchEvent(new Event(Event.COMPLETE)); } ****************** var chSendData:connectToDB = new connectToDB(mcErr); chSendData.addEventListener(Event.COMPLETE, completeHandler); ****************** private function completeHandler(event:Event):void { var chSendData:connectToDB = event.target as connectToDB; this.chLineAll = chSendData.strChatLine; }
__________________
я могу стать всем, если только захочу |
|
|||||
|
извиняюсь... действительно фигню сморозил... думал о другом в это время...
|
|
|||||
|
Регистрация: Oct 2009
Сообщений: 13
|
Спасибо за идеи... Решил задачу сам и немного другим образом... решил передавать 2-а параметра и ничего не возвращать
var chLine:TextField = new TextField(); ....................... chData(chString:String, chList:TextField):void { ....................... try { this.chLine = chList;//добавил this.urlLoaderData.load(this.urlRequestScript); } ....................... } internal function sendChatString(e:Event):void { this.strChatLine = e.target.data; var mcURLErr:errWindow = new errWindow(this.strChatLine, this.mcErr); this.chLine.appendText(this.strChatLine); //добавил this.urlLoaderData.removeEventListener(Event.COMPLETE, sendChatString); Скажите пожалуйста, это нормальное решение или у него есть глюки?(я их пока не нашёл) |
|
|||||
|
Цитата:
класс работы с бд в идеале ничего не должен знать ни о каких TextField, errWindow. у него запросили данные - он начал грузить, загрузил - сообщил что загрузил. а что там будет с данными делаться ему должно быть по барабану. ах да, блок трай кетч там не нужен, ошибки там не возникнет. если ошибка возникнет, она будет уже за пределами трай кетч. чтобы ее поймать надо подписаться на событие (читайте в хелпе)
__________________
я могу стать всем, если только захочу |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:18. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| php , return , задержка ответа |
|
|