Продолжаю разрабатывать своё простенькое приложение. С визуальной частью пока нормально, и я решил заняться взаимодействием приложения с контактовским апи. Для начала попробовал простые методы, аля вывести имя и фото юзера, список друзей и скинуть сообщение на стену. Всё нормально отработало. Решил перенести код в отдельный класс, дабы в мэйне было почище, ну и по другим соображениям. Создал класс AgentVK, который должен взаимодействовать в апи вк. Однако напоролся на ошибку: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"
Главный класс
Код: Выделить всё
package {//===================================================================================================================== // Проверить потом все библиотеки import flash.display.Sprite; import flash.events.*;//===================================================================================================================== public class Main extends Sprite { private var myGame:MyGame;//===================================================================================================================== public function Main() { trace("Запущен класс Main"); newGame(); }//===================================================================================================================== public function newGame():void { myGame = new MyGame(); addChild(myGame); }//===================================================================================================================== }//===================================================================================================================== }
Код: Выделить всё
package {//===================================================================================================================== // Проверить потом все библиотеки и убрать лишние import flash.display.Sprite; import flash.events.EventDispatcher; import flash.events.IEventDispatcher; import flash.utils.*;//===================================================================================================================== public class MyGame extends Sprite { private var myGameView:MyGameView; // Объект класса визуализации приложения private var agentVK:AgentVK; // Объект класса-посредника с вк апи//===================================================================================================================== public function MyGame() { trace("Запущен класс MyGame"); newGameView(); newAgentVK(); }//===================================================================================================================== public function newGameView():void { trace("MyGame вызывает newGameView"); myGameView = new MyGameView(); addChild(myGameView); // Добавляем представление в список отображения }//===================================================================================================================== public function newAgentVK():void { trace("MyGame вызывает AgentVK"); agentVK = new AgentVK(); }//===================================================================================================================== }//=====================================================================================================================}
Код: Выделить всё
package { import flash.display.Sprite; import vk.APIConnection; import flash.events.*; import vk.events.*; import vk.ui.VKButton; //===================================================================================================================== public class AgentVK extends Sprite { private var VK:APIConnection;// Флэшварсы передаются на флешку только, когда флэшка на сайте private var flashVars:Object; private var firstName:String;//===================================================================================================================== public function AgentVK() { trace("Запущен класс AgentVK"); //addEventListener(Event.ADDED_TO_STAGE, startApplication (e:Event){ flashVars = stage.loaderInfo.parameters as Object;}) flashVars = stage.loaderInfo.parameters as Object;// Данные передаются только, когда флэшка на сайте trace("Ошибка!"); //-------------------------------------------------- if (!flashVars.api_id) { trace("local testing");// -- Your code for local testing:flashVars['api_id'] = 4169882;flashVars['viewer_id'] = 99999999;// Айди другой =)flashVars['sid'] = "e39a6261ba1586b364190733fb27257d1b1086faa434f29acac6b17fc912212c846681a249c555271ccfc";flashVars['secret'] = "6ccaee0bf2";// -- // } //-------------------------------------------------- VK = new APIConnection(flashVars); VK.api('getProfiles', { uid:flashVars['viewer_id'],fields:'photo_big' }, onUserProfileLoaded, onApiRequestFail); VK.api('friends.get', { fields: 'first_name, last_name, photo' }, onUserFriendsLoaded, onApiRequestFail); //VK.api('wall.post', { message: 'Я начал проходить тест http://vk.com/app4195510' }, wallPostSuccess, wallPostFail); }//===================================================================================================================== private function wallPostSuccess(data: Object): void { trace("Success wall.post post_id: " + data.post_id.toString() + "\n"); //tf.appendText("Success wall.post post_id: "+data.post_id.toString()+"\n"); }//--------------------------------------------------------------------------------------------------------- private function wallPostFail(data: Object): void { trace("Fail wall.post error_msg: "+data.error_msg+"\n"); //tf.appendText("Fail wall.post error_msg: "+data.error_msg+"\n"); }//--------------------------------------------------------------------------------------------------------- private function onUserPhotosLoaded(data:Object):void { trace("------------------------------"); trace("Photos = " + data); //friends_text.text = "" + data; trace("------------------------------"); }//--------------------------------------------------------------------------------------------------------- private function onUserFriendsLoaded(data:Object):void { //trace("Friends = " + data); trace("FriendsPhoto = " + data[0]['photo']); trace("Size = " + data.length); for (var i:int = 0; i < data.length; i++ ) { trace("FriendsName N "+ (i+1) +": " + data[i]['first_name'] + " " + data[i].last_name); } }//--------------------------------------------------------------------------------------------------------- private function onUserProfileLoaded(data:Object):void { firstName = data[0].first_name; trace("WHAT "+data[0].photo_big); //trace(data[0].uid); }//--------------------------------------------------------------------------------------------------------- private function onUserSettingsLoaded(data:Object):void { trace("Settings = " + data); // data - число }//--------------------------------------------------------------------------------------------------------- // ошибка при обращении к серверу api private function onApiRequestFail(data:Object):void { //trace("Ошибка при обращении к серверу api"); trace(data.error_msg); } } }
Код: Выделить всё
private var agentVK:AgentVK;