Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2013, 12:30
Kiray86 вне форума Посмотреть профиль Отправить личное сообщение для Kiray86 Найти все сообщения от Kiray86
  № 1  
Ответить с цитированием
Kiray86
 
Аватар для Kiray86

Регистрация: Jan 2013
Сообщений: 5
По умолчанию Проблема работы методов таблицы рекордов не "на локальной машине"

Проблемы суть такова..
Имеется небольшое тестовое приложение, при воспроизведении его на локальной машине, таблица рекордов заполняется, процесс "трейсится" в созданном специально для теста TextBar. Но при загрузке приложения вконтакт оно напрочь отказывается работать, в плане страдает именно выполнение completeFunction и errorFunc части метода getHighScore.

Код.

Код AS3:
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);
		}
	}
}
Исходник смотрите во вложениях к теме.

С чем может быть это связано?
Вложения
Тип файла: rar aboard.rar (182.9 Кб, 19 просмотров)


Последний раз редактировалось Kiray86; 18.01.2013 в 12:41.
Старый 18.01.2013, 13:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Почему вызов функции showBest() откомментирован?

Старый 18.01.2013, 13:48
Kiray86 вне форума Посмотреть профиль Отправить личное сообщение для Kiray86 Найти все сообщения от Kiray86
  № 3  
Ответить с цитированием
Kiray86
 
Аватар для Kiray86

Регистрация: Jan 2013
Сообщений: 5
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Почему вызов функции showBest() откомментирован?
Я пытался вызвать VK.api вне функции, думал что проблема заключается в этом, но...
При раскрытии showBest из комментариев и удалении

Код AS3:
//Эта часть кода написана вне функции               
 _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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:48.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.