Помогите найти ошибку

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

Помогите найти ошибку

Сообщение Doker »

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

package  {      import flash.display.*;  import flash.events.*;  import flash.text.*;  import flash.ui.*;  import flash.utils.*;  import flash.net.*;  import flash.system.Security;  import flash.system.SecurityPanel;  import fl.controls.List; import fl.events.ListEvent;    import api.MD5;    import api.VKApp;    import api.VKSession;    import api.VKUser;        import vk.VkApiNode;        import vk.Parameter;        import vk.MD5;        import vk.VkApi;        public class Main extends Sprite {                private var api_id:Number=1891592; // id вашего приложения        private var api_secret:String="TфвіафR"; // секретный ключ        private var api:VkApiNode;        private var viewer_id:Number;        private var xmlloader:URLLoader = new URLLoader();        private var wrapper:Object;        private var url_loader7:URLLoader;        private var url_request7:URLRequest;                private var query7:String;           var endgame;        var xod_timer;        var new_timer ;        var pula_timer;        var score ;                //var api_id = wrapper.application.parameters.api_id;        //var viewer_id =wrapper.application.parameters.viewer_id; //1851348        var vkApp;        var vkUser ;                var new_delay;        var pula ;        var left ;        var top ;        var vector;        var objs;        var pole;         public function Main() {                                                this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);                    }                public function onAddedToStage(e:Event):void{            wrapper=Object(parent.parent)                                        Security.allowDomain("*"); stage.dispatchEvent(new Event(Event.DEACTIVATE)); stage.dispatchEvent(new Event(Event.ACTIVATE));         var stat_loader:URLLoader = new URLLoader();        var stat_request:URLRequest=new URLRequest("http://xg-online.net/stat.php");// заменяем на ссылку к вашему скрипту        stat_request.method=URLRequestMethod.POST;        // добавление параметров в запрос        var stat_vars:URLVariables = new URLVariables();        stat_vars['auth_key']=wrapper.application.parameters.auth_key;   // auth_key из FlashVars        stat_vars['viewer_id']=wrapper.application.parameters.viewer_id; // ID просматривающего приложение        stat_request.data=stat_vars;        // выполнение запроса        stat_loader.load(stat_request);        stat_loader.addEventListener(Event.COMPLETE, onCompletexml); if (wrapper.application.parameters.is_app_user == 1) {   }else{  wrapper.external.showInstallBox();}        endgame = true;        xod_timer = new Timer(25);        new_timer = new Timer(2000);        pula_timer = new Timer(1);        score = 0;                //var api_id = wrapper.application.parameters.api_id;        viewer_id =wrapper.application.parameters.viewer_id; //1851348        vkApp = new VKApp({viewer_id: viewer_id}, 1891592, 'TваівварпevR', false);        vkUser = new VKUser(vkApp, 0);                new_delay = 1500.1;        pula = new Kubik();        left = 224;        top = 7;        vector = 90;        objs = new Array();        pole = new Array();                                                                bg.addChild(pula);            bg.useHandCursor = true;            bg.buttonMode = true;                        vkApp.setMaxScores(10, null);            vkUser.getVariable(1200, function(e){score = x; label_score.text = score;});            //vkApp.getHighScores(onGetHighscores);                        btn_new.addEventListener(MouseEvent.CLICK, function(e:Event){newGame()});            xod_timer.addEventListener(TimerEvent.TIMER, onTimer);            new_timer.addEventListener(TimerEvent.TIMER, onNewTimer);            pula_timer.addEventListener(TimerEvent.TIMER, onPulaTimer);            bg.addEventListener(MouseEvent.MOUSE_DOWN, onClick);        }                        function onCompletexml(event:Event):void {         var xmlLoader:URLLoader = new URLLoader();            var requestloader:URLRequest=new URLRequest("http://xg-online.net/rating.php");            xmlloader.load(requestloader);            xmlloader.addEventListener(Event.COMPLETE, onCompletexml1);                                         }                 function getProfiles(uids:Array,fields:Array):void { // функция получения профилей            query7=api.getProfiles(uids,fields);            url_request7=new URLRequest(query7);            url_loader7=new URLLoader  ;            url_loader7.addEventListener(Event.COMPLETE,profilesLoaded);            url_loader7.load(url_request7);}                        function profilesLoaded(event:Event):void {            // обрабатываем и выводим список друзей в виде "Имя Фамилия" (ссылка)            var xmlData1:XML=new XML(xmlloader.data);            var responseFriendsProfiles:XML=new XML(url_loader7.data);            var friends='';            //for each (var user:XML in responseFriendsProfiles.*) {                var k:uint;                   for (k=0;k<100;k++){               // friends=friends+'<a href="http://vkontakte.ru/id'+user.uid+'">'+user.first_name+' '+user.last_name+'</a><br />';            top_list.addItem({label:responseFriendsProfiles.user[k].first_name.toString()+' '+responseFriendsProfiles.user[k].last_name.toString()+" "+xmlData1.user[k].score.toString(), source:responseFriendsProfiles.user[k].photo_medium.toString(), data:responseFriendsProfiles.user[k].uid.toString()});                                }           // friends_tf.htmlText=friends;        }                function onCompletexml1(event:Event):void {                          //var xmlData:XML=new XML(xmlloader.data);                           // var k:uint;             // for(k=0;k<10;k++){             // top_list.addItem({label: xmlData.user[k].user_id.toString(), data:""});             // }                          var xmlData:XML=new XML(xmlloader.data);                          var all_friends:Array=new Array  ;                //all_friends.push(viewer_id);                                var m:uint;                for(m=0;m<100;m++){              all_friends.push(xmlData.user[m].user_id.toString());                }                // получаем профили друзей, используя метод getProfiles                // ПРИМЕЧАНИЕ! Если друзей более 1000, то этот запрос нужно будет поделить на части, из-за ограничений метода getProfiles                var fields:Array=new Array  ;                fields=['first_name,last_name,photo_medium'];// перечисленные через запятую поля, необходимые для получения                getProfiles(all_friends,fields);                     }                        function newGame() {                    btn_new.visible=false;        start_logo.visible=false;        bg.x=225;bg.y=0;            pula.x = 0;            pula.y = 0;            pula.visible = false;                        for each(var item in objs)                removeChild(item);                                                            objs = new Array();                            new_delay = 1500;            new_timer.delay = 1500;            xod_timer.start();            new_timer.start();            endgame = false;            label_xod.text = '';            label_score.text = '0';            score = 0;        }                function onTimer(e) {            for each(var item in objs)            {          item.y++;                if (item.y + item.height > 394)                {                    endgame = true;                    setScore();                    label_xod.text = 'Игра закончена!';                    xod_timer.stop();                    new_timer.stop();                    pula_timer.stop();                                                                                            btn_new.visible=true;        start_logo.visible=true;        bg.x=-2132546;bg.y=0;                        }            }                        }                         function onNewTimer(e) {          var p = new Palka();            p.x = left+1 + Math.random()*370;            p.y = top;            addChild(p);            objs.push(p);            new_timer.delay = new_delay;        }                function onPulaTimer(e) {            var a = 5; // скорость пули            var v = Math.abs(vector);            var k = Math.sqrt((a*a)/(1+v*v));            var z;            if (vector >= 0) z = 1; else z = -1;            pula.x = pula.x + k * z;            pula.y = pula.y - k * v;                      for each(var item in objs)              if (pula.hitTestObject(item))                {                    pula.visible = false;                    removeChild(objs[objs.MainOf(item)]);                    objs.splice(objs.MainOf(item), 1);                    score++                    new_delay = new_delay - new_delay*0.015;                                        label_score.text = score*10+"";                    pula_timer.stop();                }        }                function onClick(e: MouseEvent) {            if (endgame) return false;            vector = (384-e.localY)/(e.localX - 384/2);            trace(vector);            pula.y = 384;            pula.x = 192;            pula.visible = true;            pula_timer.start();        }                function setScore() {                        //vkApp.setHighScore(score*10, cb);                        //function cb(x: XML) {             // vkApp.getHighScores(onGetHighscores);            //}                         var score_loader:URLLoader = new URLLoader();        var score_request:URLRequest=new URLRequest("http://xg-online.net/change_score.php");// заменяем на ссылку к вашему скрипту        score_request.method=URLRequestMethod.POST;        var score_vars:URLVariables = new URLVariables();        score_vars['new_score']=score*10;         score_vars['viewer_id']=wrapper.application.parameters.viewer_id;         score_vars['auth_key']=wrapper.application.parameters.auth_key;        score_request.data=score_vars;        score_loader.load(score_request);                        }                function getShortName(s: String) {            var q = s.split(' ');            return q[0] + ' ' + q[1].charAt(0) + '.';        }                     }}
Выдает ошибку:
D:\лимончик\Main.as, строка 140 1180: Вызов предположительно неопределенного метода getProfiles.
Тут ошибка:

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

query7=api.getProfiles(uids,fields);
В других приложениях аналогичный код работает.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Помогите найти ошибку

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

Забыл про

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

api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url);
Одновременно используешь 2 разные библиотеки?
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Помогите найти ошибку

Сообщение Doker »

ага)

п.с. не помогло( таже ошибка
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Помогите найти ошибку

Сообщение Doker »

ошибку нашел
Ответить