Страница 1 из 1

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

Добавлено: 13 июл 2011, 21:35
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;        }    }}
подскажите можно ли переделать, что бы заработало?

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

Добавлено: 14 июл 2011, 09:02
Евгений
Koby, flashVars не нужно через враппер создавать :)

Это:

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

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

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

var flashVars:Object = stage.loaderInfo.parameters as Object;
И всё заработает =)

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

Добавлено: 14 июл 2011, 10:55
Koby
Да, спасибо) Вчера перебирал разные варианты, и в таком виде заработало=)

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

var flashVars:Object = stage.loaderInfo.parameters as Object;

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

Добавлено: 14 июл 2011, 20:11
Александр
Koby
Зачем с контейнером использовать APIConnection?
wrapper.external.api не хватает? http://vkontakte.ru/developers.php?o=-1 ... r.external

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

Добавлено: 16 июл 2011, 11:32
Koby
С таким способом я пока не разобрался=)