Vk Api 3.0 белый экран.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
madD
Сообщения: 4
Зарегистрирован: 19 июн 2011, 23:14

Vk Api 3.0 белый экран.

Сообщение madD »

Здравствуйте, проблема в том, что при заливке и запуске приложения вконтакте оно выдает лишь белый экран, при том, что я просто скопировал чужой якобы рабочий код (хотя и сам пробовал писать, результат тот же), приложение включено, контейнер отключен, использую Adobe Flash Builder 4.5 (бывший Flex, как я понял).

Все это возникало на строках:

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

public var flashVars:Object = stage.loaderInfo.parameters as Object;public var VK:APIConnection = new APIConnection(flashVars);
То есть если их закомментить, то белый экран пропадал и появлялись элементы программы (но API естественно не работало :D).

Попробовал сделать присвоение этим переменным что-либо непосредственно после события завершения создания приложения (creationComplete="testInit()"), в итоге белого экрана нет, но при нажатии на кнопку абсолютно ничего не происходит, хотя в Label должен заноситься определенный текст >.<

Вот полный код:

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

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"               xmlns:s="library://ns.adobe.com/flex/spark"               xmlns:mx="library://ns.adobe.com/flex/mx"               width="621" height="460" minWidth="955" minHeight="600"               creationComplete="testInit()">        <fx:Script>        <![CDATA[            import vk.APIConnection;            import vk.events.*;                        public var api_id:Number;            public var viewer_id:Number;            public var sid:String;            public var secret:String;                        // получаем flashVars            public var flashVars:Object = new Object();                        // инициализация            public var VK:APIConnection;                        private function testInit():void {                // присваиваем переменным значения из flashVars                flashVars = stage.loaderInfo.parameters as Object;                VK = new APIConnection(flashVars);                vvid.text = (stage.loaderInfo.parameters as Object)['sid'];                api_id = flashVars['api_id'];                viewer_id = flashVars['viewer_id'];                sid = flashVars['sid'];                secret = flashVars['secret'];            }                        private function getProfiles():void {                // выполняем запрос getProfiles, в качестве параметра uids используем id пользователя, просматривающего приложения, в параметре fields указываем photo_big - большая фотография пользователя                VK.api('getProfiles', { uids: flashVars['viewer_id'],fields:'photo_big' }, onProfileLoaded, onError);            }                        // данные получены            private function onProfileLoaded(data: Object):void            {                // обрабатываем полученный ответ                firstName.text = data[0]['uid'] + ' ' + data[0]['first_name'] + ' ' + data[0]['last_name'] + ' ' + data[0]['photo_big'];            }                        // если произошла ошибка            private function onError(data: Object):void            {                firstName.text = data.error_msg;            }        ]]>    </fx:Script>        <fx:Declarations>            </fx:Declarations>    <s:Label x="71" y="39" text="Имя"/>    <s:Label x="71" y="19" fontWeight="bold" text="Тестовое приложение"/>    <s:Label id="firstName" x="145" y="39"/>    <s:Button x="92" y="103" label="Кнопка" click="getProfiles()"/>    <s:Label id="vvid" x="71" y="70"/></s:Application> 
Пожалуйста помогите, прошу как никогда, я просто убил день в поисках причин не работы и зол до ужаса, буду крайне рад, если это простейшее приложение заработает и я перестану стоять на месте :lol:

Заранее спасибо большое.
madD
Сообщения: 4
Зарегистрирован: 19 июн 2011, 23:14

Re: Vk Api 3.0 белый экран.

Сообщение madD »

Разобрался, не на то событие вешал инициализацию.
Проблема была в том, что stage был на тот момент пустой, повесил инициализацию на applicationComplete и всё заработало.
Ответить