Код: Выделить всё
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);