![]() |
При разборе кода примеров vkontakte API не могу понять одно место
Здравствуйте, у меня следующий вопрос:"При разборе кода примеров vkontakte API не могу понять одно место".
//Я еще плохо разбираюсь во флеше, actionscripte и ООП в частности. Разбираю код, представленный на: http://vkontakte.ru/pages.php?o=-1&p...F2%E0%EA%F2%E5 по ссылке: http://vkontakte.ru/source/Tetris.zip В файле DataProvider.as, в функции _sendRequest, я так понимаю идет отсыл данных. Код:
private function _sendRequest(method:String, options:Object)По аналогии с представленным в этом файле кодом я написал обращение к этой функции через функцию: Код:
public function getInstPril(uid:String,onComplete:Function):StringДалее по аналогии с вложенным в пример кодом пишу private var dataProvider: DataProvider; В конструкторе класса - dataProvider = new DataProvider(); До этого момента может и не все понимаю, но работает. Далее описываю метод для получения установил ли юзер приложение к себе или нет: Код:
public function getInstUser()//Вернем - установил ли юзер приложениеВо-первых не понимаю строку:"dataProvider.getInstPril(user_dead_mas[d]['uid'],function(success:Boolean)". Это где эта фнкция висит? В dataProvider?. Не понимаю как можно передать в качестве параметра функцию.Или здесь что-то другое делается? Когда срабатывает код, описанный в этой getInstPril? Данные есть, обрабатываются, но как-то странно - в трейсе вижу, что перебирается for, а эта функция выполняется как-то независимо от цыкла. В руководстве:"http://vkontakte.ru/pages.php?o=-1&p=%C2%E7%E0%E8%EC%EE%E4%E5%E9%F1%F2%E2%E8%E5%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%FF%20%F1%20API" написано, что:"Сервер принимает не более трёх запросов в секунду". Как сделать, чтобы эта (для меня непонятно где зависшая функция с передающим (или получающим?) в качестве параметра функцию (тоже не очень понятно как работающую), так вот чтобы эта функция была нормальым вызовом в цыкле и, например с проверкой на setTimeOut какойнибудь. Наверное не очень внятно обяснил, но если кто понял - уделите пожалуйста немного времени и объясните идиоту где тут собака порылась. Заранее спасибо. |
Это анонимная функция.
Или литерал функции. висит там же где и любая локальная переменная. Примеры для апи в контакте написаны пхп прогерами и мягко говоря не очень |
значение response_this я могу получить только внутри этой функции. Даже к классу приходится обращаться как _global.test_ex.myFunction. Получается это обращение:"dataProvider.getInstPril(user_dead_mas[d]['uid'],function(success:Boolean)" вообще где-то в воздухе. Можно, конечно через всякие _global-ы работать, но как-то это не правильно наверное. А переписать функцию так, чтобы как обычный понятный мне метод не получается т.к. не понимаю смысл конструкции вообще. Может кто по шагам сможет объяснить мне тупоголовому что делается7
"if (success" не понимаю((( откуда success. И ели никто не против предыдущие вопросы тоже хотелось бы прояснить. Спасибо за внимание к теме. |
success это параметр, который получит данная анонимная функция.
Нужно смотреть по коду где вызывается функция, там и передается параметр. |
А чем Вас flashvars не устроили?
Цитата:
|
Он у viewer_id друзей хочет проверить на isAppUser.
|
Почитаю про анонимные функции))) Спасибо, что пнули.
Добавлено через 2 часа 52 минуты Впринципе есть getAppFriends.... но я не люблю легких путей!!!))) |
| Часовой пояс GMT +4, время: 01:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.