Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
-
AngelPOPs
- Сообщения: 4
- Зарегистрирован: 26 мар 2012, 12:30
Сообщение
AngelPOPs »
Здраствуйте.
Разбираюсь как это работает.
А вот это не совсем работает...
Код: Выделить всё
package { import vk.APIConnection; import vk.events.*; import flash.display.MovieClip; import flash.events.*; public class Main extends MovieClip { public var api_id:Number; public var viewer_id:Number; public var sid:String; public var secret:String; public function Main() { if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE,init); } } private function init(e:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE,init); var flashVars:Object = stage.loaderInfo.parameters as Object; if (! flashVars.api_id) { // -- For local testing enter you test-code here: flashVars['api_id'] = 1888171; flashVars['viewer_id'] = 66748; flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa"; flashVars['secret'] = "6113n3e4g3"; // -- // } api_id = flashVars['api_id'];// id приложения viewer_id = flashVars['viewer_id'];// id пользователя sid = flashVars['sid'];// сид secret = flashVars['secret'];// секретный пароль result_tf.text = "ID приложения: " + api_id; var VK:APIConnection = new APIConnection(flashVars); VK = new APIConnection(flashVars); VK.api('users.get', {uids: viewer_id, fields:'nickname'}, onProfileLoaded, onError); } private function onProfileLoaded(e:Object):void { result_tf.text = "Погоняло: " + e.first_name.length; } private function onError(e:Object):void { result_tf.text = "Ошибка: " + e.error_msg; } }}
Выводит ID приложения, а запрос к API не происходит. Ошибку тоже не отрабатывает.
Сильно не пинайте, я только учус...
-
Александр
- Создатель сайта

- Сообщения: 4574
- Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр »
Это что такое? Почему length?
Начинай использовать
Charles, чтобы видеть выполняются ли запросы вообще.
-
AngelPOPs
- Сообщения: 4
- Зарегистрирован: 26 мар 2012, 12:30
Сообщение
AngelPOPs »
Не в том вопрос...
Даже если написать так:
Оно не работает.
length - длина, на сколько я знаю.
-
Александр
- Создатель сайта

- Сообщения: 4574
- Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр »
А по второй части что? Что в Charles видишь? Запрос выполняется?
-
AngelPOPs
- Сообщения: 4
- Зарегистрирован: 26 мар 2012, 12:30
Сообщение
AngelPOPs »
Поставил Charles.
Запроса нет.
Прошу прощения, не заметил второй части.
-
gaponj88
- Сообщения: 433
- Зарегистрирован: 21 окт 2011, 12:26
Сообщение
gaponj88 »
AngelPOPs
А зачем ты два раза выполняешь подключение?
Код: Выделить всё
var VK:APIConnection = new APIConnection(flashVars);VK = new APIConnection(flashVars);
убери вторую строчку
-
AngelPOPs
- Сообщения: 4
- Зарегистрирован: 26 мар 2012, 12:30
Сообщение
AngelPOPs »
Мнда. Пока не понял почему, но вот этот скрипт работает:
Код: Выделить всё
package { import flash.display.Sprite; import flash.events.Event; import vk.APIConnection; public class Main extends Sprite { private var flashVars:Object; private var VK:APIConnection; public function Main() { //---------------------------------------------------------------------- if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }//---------------------------------------------------------------------- } private function init(e: Event = null):void { //---------------------------------------------------------------------- flashVars = stage.loaderInfo.parameters as Object; VK = new APIConnection(flashVars); getProfiles(); //---------------------------------------------------------------------- removeEventListener(Event.ADDED_TO_STAGE, init); //---------------------------------------------------------------------- } private function getProfiles():void { //---------------------------------------------------------------------- var profilesFields:String; //---------------------------------------------------------------------- profilesFields = 'uid, first_name, last_name, screen_name, photo_big'; //---------------------------------------------------------------------- VK.api('users.get', {uids: flashVars.viewer_id, fields: profilesFields}, getProfilesTrue, getProfilesFalse); //---------------------------------------------------------------------- } private function getProfilesTrue(data: Object):void { //---------------------------------------------------------------------- result_tf.text = "Фамилия: " + data[0].last_name; //---------------------------------------------------------------------- } private function getProfilesFalse(data: Object):void { //---------------------------------------------------------------------- result_tf.text = "Ошибка"; //---------------------------------------------------------------------- } }}
-
Александр
- Создатель сайта

- Сообщения: 4574
- Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр »
AngelPOPs
gaponj88 писал(а):А зачем ты два раза выполняешь подключение?
убери вторую строчку
Код: Выделить всё
package{ import vk.APIConnection; import vk.events.*; import flash.display.MovieClip; import flash.events.*; public class Main extends MovieClip { public var api_id:Number; public var viewer_id:Number; public var sid:String; public var secret:String; public function Main() { if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE,init); } } private function init(e:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE,init); var flashVars:Object = stage.loaderInfo.parameters as Object; if (! flashVars.api_id) { // -- For local testing enter you test-code here: flashVars['api_id'] = 1888171; flashVars['viewer_id'] = 66748; flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa"; flashVars['secret'] = "6113n3e4g3"; // -- // } api_id = flashVars['api_id'];// id приложения viewer_id = flashVars['viewer_id'];// id пользователя sid = flashVars['sid'];// сид secret = flashVars['secret'];// секретный пароль result_tf.text = "ID приложения: " + api_id; var VK:APIConnection = new APIConnection(flashVars); VK.api('users.get', {uids: viewer_id, fields:'nickname'}, onProfileLoaded, onError); } private function onProfileLoaded(e:Object):void { result_tf.text = "Погоняло: " + e.first_name.length; } private function onError(e:Object):void { result_tf.text = "Ошибка: " + e.error_msg; } }}
Работает.