![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 5
|
Проблемы суть такова..
Имеется небольшое тестовое приложение, при воспроизведении его на локальной машине, таблица рекордов заполняется, процесс "трейсится" в созданном специально для теста TextBar. Но при загрузке приложения вконтакт оно напрочь отказывается работать, в плане страдает именно выполнение completeFunction и errorFunc части метода getHighScore. Код. package { import flash.display.MovieClip; import flash.display.*; import flash.events.*; import flash.ui.*; //Mouse import flash.utils.*; import vk.APIConnection; import vk.events.*; import vk.ui.VKButton; public class ScoreScreen extends MovieClip{ private var _textBar:CurText = new CurText(); //VK parameters private var VK:APIConnection; private var flashVars:Object; //Some parameters private var user_id:Number = new Number(); //Containers private var scoreCont:Sprite = new Sprite(); private var btnsCont:Sprite = new Sprite(); //Btns private var _BtnBack:Wind; private var _loader:Loader = new Loader(); public function ScoreScreen() { if(stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void{ addChild(_textBar); _textBar.TextBar.appendText("\n" + "TEXT BAR TEST"); addChild(scoreCont); addChild(btnsCont); removeEventListener(Event.ADDED_TO_STAGE, init); var flashVars: Object = stage.loaderInfo.parameters as Object; if (!flashVars.api_id) { // -- Your code for local testing: flashVars['api_id'] = 3228620; flashVars['viewer_id'] = 115441537; flashVars['sid'] = "3d0a675f1e2549d172a5dafdf35fee95d87b76a3e210fa3a413ea490f527218a9679876d8268a5e32707c"; flashVars['secret'] = "aa8e2ba6ab"; // -- // } user_id = flashVars['viewer_id']; VK = new APIConnection(flashVars); _BtnBack = new Wind(); _BtnBack.x = 50; _BtnBack.y = 50; Wind(_BtnBack).setM("== BACK ==", 74, 20); _textBar.TextBar.appendText("\n" + "SHOW BEST FUNC"); VK.api("getHighScores", {}, completeFunc, errorFunc); _textBar.TextBar.appendText("\n" + "VK.API func added"); btnsCont.addChild(_loader); _loader.x = 190.5; _loader.y = 200; //addEventListener(Event., showBest); //showBest(); btnsCont.addChild(_BtnBack); _BtnBack.addEventListener(MouseEvent.CLICK, endFunc); } private function endFunc(e:MouseEvent):void { for( var j:int = 0; j < scoreCont.numChildren; j++ ){ scoreCont.removeChild(scoreCont.getChildAt(j)); } btnsCont.removeChild(_BtnBack); _BtnBack.removeEventListener(MouseEvent.CLICK, endFunc); _BtnBack = null; dispatchEvent(new Event("BACK_BTN", true)); } private function showBest():void { _textBar.TextBar.appendText("\n" + "SHOW BEST FUNC"); VK.api("getHighScores", {}, completeFunc, errorFunc); _textBar.TextBar.appendText("\n" + "VK.API func added"); btnsCont.addChild(_loader); _loader.x = 190.5; _loader.y = 200; } private function completeFunc(data:Object):void{ _textBar.TextBar.appendText("\n" + "Complete function"); _textBar.TextBar.appendText("\n" + data); btnsCont.removeChild(_loader); _loader = null; for( var i:int = 0; i < data.length; i++ ){ _textBar.TextBar.appendText("\n" + data[i].user_name + " " + data[i].score + "sec"); trace(i+1 + ": " + data[i].user_name + " " + data[i].score + "sec"); var setters:String = String(i+1 + ": " + data[i]['user_name'] + " " + data[i].score + "sec"); var _bar:Wind = new Wind(); var widthP:int = 170; //Parameters var heightP:int = 20; Wind(_bar).setM(setters, widthP, heightP); _bar.x = (stage.stageWidth - widthP) / 2; _bar.y = (stage.stageHeight - heightP) / 2 - 140 + i * 30; _bar.alpha = 1 - (0.3 * i)/data.length; scoreCont.addChild(_bar); } } private function errorFunc(data:Object):void{ trace(data.error_msg); _textBar.TextBar.appendText("\n" + data.error_msg); } } } С чем может быть это связано? Последний раз редактировалось Kiray86; 18.01.2013 в 12:41. |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 5
|
Я пытался вызвать VK.api вне функции, думал что проблема заключается в этом, но...
При раскрытии showBest из комментариев и удалении //Эта часть кода написана вне функции _textBar.TextBar.appendText("\n" + "SHOW BEST FUNC"); VK.api("getHighScores", {}, completeFunc, errorFunc); _textBar.TextBar.appendText("\n" + "VK.API func added"); btnsCont.addChild(_loader); _loader.x = 190.5; _loader.y = 200; ================================================ Проблема решилась, необходимо было вызывать методы только из одного класса приложения, т.к. иначе срабатывали методы только из того класса, который первым обратился к методам. спасибо -_-" Последний раз редактировалось Kiray86; 18.01.2013 в 17:52. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|