API Connection в контейнере

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Koby
Сообщения: 30
Зарегистрирован: 18 сен 2010, 18:41

API Connection в контейнере

Сообщение Koby »

Здравствуйте. Переделал урок по API Connection для контейнера, но при запуске вся область приложения остается пустой..

Код: Выделить всё

/* http://flapps.ru/forum/ - форум о создании приложений */package {    import flash.display.Sprite;    import flash.text.*;    import flash.events.*;    import vk.APIConnection;    import vk.events.*;    import vk.ui.VKButton;    import flash.system.Security;     public class Main extends Sprite    {        public var api_id:Number;        public var viewer_id:Number;        public var sid:String;        public var secret:String;        public var wrapper:Object;         public function Main()        {             this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage);            }                        function onAddedToStage(e:Event):void {                            wrapper=Object(parent.parent);            Security.allowDomain("*");            stage.dispatchEvent(new Event(Event.DEACTIVATE));            stage.dispatchEvent(new Event(Event.ACTIVATE));                            var flashVars:Object = wrapper.parameters as Object;            // присваиваем переменным значения из flashVars            api_id = flashVars['api_id'];            viewer_id = flashVars['viewer_id'];            sid = flashVars['sid'];            secret = flashVars['secret'];             // для тестирования локально, вводим свои данные здесь и раскоменчиваем код            /*flashVars['api_id'] = 1728947;            flashVars['viewer_id'] = 1306422;            flashVars['sid'] = 'a1006fd1e8gb9bd669e1119280166bc6cb9110b8a111550333bf041301';            flashVars['secret'] = '7ef8l6a4p8';            */             // инициализация            var VK:APIConnection = new APIConnection(flashVars);            // выполняем запрос getProfiles, в качестве параметра uids используем id пользователя, просматривающего приложения, в параметре fields указываем photo_big - большая фотография пользователя            VK.api('getProfiles', { uids: flashVars['viewer_id'],fields:'photo_big' }, onProfileLoaded, onError);        }         // данные получены        private function onProfileLoaded(data: Object):void        {            // обрабатываем полученный ответ            result_tf.text = data[0]['uid'] + ' ' + data[0]['first_name'] + ' ' + data[0]['last_name'] + ' ' + data[0]['photo_big'];        }         // если произошла ошибка        private function onError(data: Object):void        {            result_tf.text = data.error_msg;        }    }}
подскажите можно ли переделать, что бы заработало?
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: API Connection в контейнере

Сообщение Евгений »

Koby, flashVars не нужно через враппер создавать :)

Это:

Код: Выделить всё

var flashVars:Object = wrapper.parameters as Object;
Замените на это:

Код: Выделить всё

var flashVars:Object = stage.loaderInfo.parameters as Object;
И всё заработает =)
Koby
Сообщения: 30
Зарегистрирован: 18 сен 2010, 18:41

Re: API Connection в контейнере

Сообщение Koby »

Да, спасибо) Вчера перебирал разные варианты, и в таком виде заработало=)

Код: Выделить всё

var flashVars:Object = stage.loaderInfo.parameters as Object;
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: API Connection в контейнере

Сообщение Александр »

Koby
Зачем с контейнером использовать APIConnection?
wrapper.external.api не хватает? http://vkontakte.ru/developers.php?o=-1 ... r.external
Koby
Сообщения: 30
Зарегистрирован: 18 сен 2010, 18:41

Re: API Connection в контейнере

Сообщение Koby »

С таким способом я пока не разобрался=)
Ответить