![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 25.01.12]
Регистрация: Mar 2011
Адрес: Земля
Сообщений: 19
|
Нажатием по кнопке, вызываю клас. Получить хочу пропарсеный масив, но не отдает.
Trace выводит, а returnОМ не могу. С класами недавно, поэтому где нибудь ошибка в вызове функции, прошу Вашей помощи. Вызов по кнопке: Сам клас: class getLink { public var links:String; public var my_array:Array; static function getLinks(url:String):Void { var lvSend:LoadVars = new LoadVars(); var lvReceive:LoadVars = new LoadVars(); lvSend.sendAndLoad(url, lvReceive, "POST"); //return url; lvReceive.onData = function(data):Array{ if (data == null) { trace("error"); return null; } else { links = unescape(data); var arr_end = []; var my_array = links.split("<li>"); for (var i = 0; i<my_array.length; i++) { my_array[i] = (my_array[i].slice((my_array[i].indexOf('http')), (my_array[i].indexOf('/')))); } //trace(my_array); //Здесь возвращает- то что нужно, но не в return return my_array; } }; } } P.S. Чисто терминологичекая ошибка. Вот, если сделать возврат из первой функции- вернет прекрасно url, например: А результат POST запроса от lvReceive.onData- не пойму как принять: Последний раз редактировалось develops; 17.12.2011 в 15:58. Причина: изменение темы |
|
|||||
|
Извините, а можно в двух словах описать, что именно вы планируете получить по данной ссылке?
|
|
|||||
|
[+3 25.01.12]
Регистрация: Mar 2011
Адрес: Земля
Сообщений: 19
|
да нет, ссылка как наглядный пример post запроса для получения html страницы. Ну а дальнейший парсинг- это само собой разумеется.
|
|
|||||
|
ссылка отдается. файл с пустотй приходит. парсится оно также в пустоту, вот undefined вы и получаете
Ну и к тому же .onData - возникает как только данные стали поступать. Надо использовть .onLoad - когда получены. Далее. trace выдает вам нулевой отсутствующий ответ от getLinks(), а не по факту свершившегося события .onData или .onLoad. Соотв. переписываем примерно так: getLink.getLinks("http://korrespondent.net/", callBack ) function callBack( DAT ){ trace( "DATA PARSED:"+DAT ); } class getLink { public var links:String; static function getLinks(url:String, callBack ):Void { var lvSend:LoadVars = new LoadVars(); var lvReceive:LoadVars = new LoadVars(); lvSend.sendAndLoad(url, lvReceive, "POST"); lvReceive.onLoad = function( data ){ trace( "DATA RECEIVED" ); if (data == null) { trace("error"); return null; } else{ links = unescape(data); var arr_end = []; var my_array = links.split("<li>"); for (var i = 0; i<my_array.length; i++){ my_array[i] = (my_array[i].slice((my_array[i].indexOf('http')), (my_array[i].indexOf('/')))); } callBack ( my_array ); } } } } Последний раз редактировалось dark256; 17.12.2011 в 16:51. |
|
|||||
|
[+3 25.01.12]
Регистрация: Mar 2011
Адрес: Земля
Сообщений: 19
|
Сенкс, добрый человечек!
Уловил суть, что требовалось )) Чет я не сообразил вызвать функцию с передачей ей этого ж самого масива. Вот только по поводу onLoad/onData. Все же- onLoad, мне в данный момент- возвращает :Boolean, т.е. true. А вот, при замене на onData, возвращает данные из post. Но и вправду- при разных скоростях инета- String из запроса, будет разный, т.к. нет полной загрузке при onData. Последний раз редактировалось develops; 17.12.2011 в 18:00. |
|
|||||
|
onData - глючит безбожно. По сути это НАЧАЛО поступления данных, а не факт их окончания получения.
Соотв тут либо шаманить надо, либо даже и не знаю. Я не смог нормально пользоваться этим событием. В общем случае - файл получаю либо пустой, либо полузагруженный. Далее. Вы грузите не СКРИПТ, а САЙТ - что он там вам отдает - неизвестно в общем случае ![]() В нисфере там мильон всяких файлов по ссылке отдается. Выберите какой-нть более простой и явный пример для загрузки ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:59. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| sendAndLoad |
|
|