Игра «Угадай число» (getHighScores, setUserScore)
Re: Игра «Угадай число» (getHighScores, setUserScore)
JossRoss
При работе с XML - это оператор доступа к более низкому уровню. Посмотри какой XML обрабатывается таким способом и тебе станет понятнее.
http://help.adobe.com/ru_RU/ActionScrip ... -7e6b.html
Евгений
Конечно можно сделать под контейнер. Пиши код, который у тебя получился и не работает.
При работе с XML - это оператор доступа к более низкому уровню. Посмотри какой XML обрабатывается таким способом и тебе станет понятнее.
http://help.adobe.com/ru_RU/ActionScrip ... -7e6b.html
Евгений
Конечно можно сделать под контейнер. Пиши код, который у тебя получился и не работает.
Re: Игра «Угадай число» (getHighScores, setUserScore)
Этот самый код, из этой темы не работает:
Код: Выделить всё
var wrapper:Object;this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);function onAddedToStage(e: Event):void { Security.allowDomain("*"); stage.dispatchEvent(new Event(Event.DEACTIVATE)); stage.dispatchEvent(new Event(Event.ACTIVATE)); wrapper=Object(this.parent.parent); import vk.VkApiNode; var api_id:Number=1928400;// ID приложения var api_secret:String="4Z6iG49p3q";// секретный ключ var beginMessage:String; var randomNumber:uint; var my_guess:uint; var try_count:int; var api:VkApiNode; var url_loader:URLLoader; var url_request:URLRequest; var query:String; var uids:Array; var fields:Array; var viewer_id:Number; // настройка меню по правому клику мыши var cm = new ContextMenu(); cm.hideBuiltInItems(); var p1:ContextMenuItem=new ContextMenuItem('«Угадай число»'); var p2:ContextMenuItem=new ContextMenuItem('flapps.ru'); p2.separatorBefore=true; cm.customItems.push(p1,p2); this.contextMenu=cm; // создание стиля текста, для вывода рекордов var myCSS = new StyleSheet(); myCSS.setStyle("a:link", {textDecoration:"none"}); myCSS.setStyle("a:hover", {textDecoration:"underline"}); records_tf.styleSheet=myCSS; // получение текущих рекордов getHightScores(); // запуск главной функции игры init(); function init():void { play_again_btn.visible=false; guess_btn.visible=true; beginMessage="Введите число от 1 до 100."; message_tf.autoSize=TextFieldAutoSize.CENTER; message_tf.text=beginMessage; try_count=10;// количество попыток try_count_tf.text="У вас осталось "+try_count+" попыток."; message_tf.restrict="0-9"; input_tf.text=""; // генерация случайного числа randomNumber=Math.floor(Math.random()*100+1); guess_btn.addEventListener(MouseEvent.CLICK, yourGuess); } function yourGuess(event:MouseEvent):void { // проверка числа, введенного пользователем my_guess=uint(input_tf.text); try_count--; try_count_tf.text="У вас осталось "+try_count+" попыток."; if (my_guess>randomNumber) { message_tf.text="Ваше число, "+my_guess+" слишком большое."; } else if (my_guess < randomNumber) { message_tf.text="Ваше число, "+my_guess+" слишком маленькое."; } else { message_tf.text="Правильно! Это число "+randomNumber+"."; winGame(); } if (try_count==0) { try_count_tf.text="У вас больше нет попыток."; guess_btn.visible=false; play_again_btn.visible=true; guess_btn.removeEventListener(MouseEvent.CLICK, yourGuess); play_again_btn.addEventListener(MouseEvent.CLICK, guessAgain); } } function winGame():void { // выигрыш // очки высчитываются по формуле (оставшееся кол-во попыток)*10 try_count_tf.text="Ваш результат: "+try_count*10+" баллов."; // отправка рекорда setHightScores(); guess_btn.visible=false; play_again_btn.visible=true; guess_btn.removeEventListener(MouseEvent.CLICK, yourGuess); play_again_btn.addEventListener(MouseEvent.CLICK, guessAgain); } function guessAgain(event:MouseEvent):void { init(); } function setHightScores():void { // функция отправки рекорда на сервер вконтакте viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id; // содание запроса для отправки рекорда api=new VkApiNode(viewer_id,api_id,api_secret); query=api.setUserScore(''+(try_count*10)); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,onLoaded2); url_loader.load(url_request); } function getHightScores():void { // функция получения рекордов viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id; api=new VkApiNode(viewer_id,api_id,api_secret); query=api.getHighScores(); url_request=new URLRequest(query); url_loader=new URLLoader ; url_loader.addEventListener(Event.COMPLETE,onLoaded); url_loader.load(url_request); } function onLoaded(event:Event):void { if (url_loader.data!=null) { var externalXML=new XML(url_loader.data); var topUsers=''; var len=externalXML.score_info.length(); for (var i=0; i<len; i++) { topUsers=topUsers+externalXML..score[i]+' <a href="http:/vkontakte/id'+externalXML..user_id[i]+'">'+externalXML..user_name[i]+'</a><br />'; } records_tf.htmlText=topUsers; } else { trace("Error!"); } } function onLoaded2(event:Event):void { getHightScores(); }}
Re: Игра «Угадай число» (getHighScores, setUserScore)
вот это
в двух местах заменить на
Код: Выделить всё
viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id;
Код: Выделить всё
viewer_id=wrapper.application.parameters.viewer_id;
Re: Игра «Угадай число» (getHighScores, setUserScore)
Уаа..Спасибо! Наконец-то...)
Re: Игра «Угадай число» (getHighScores, setUserScore)
Сбрасывать рекорд пользователя, который играет или всех пользователей?Влад писал(а):Я научился сбрасывать рекорды!!!!
Re: Игра «Угадай число» (getHighScores, setUserScore)
Кто умеет перезаписывать рекорд пользователя? Отзовитесь..
Re: Игра «Угадай число» (getHighScores, setUserScore)
А как выделить красным цветом первых трёх?
Re: Игра «Угадай число» (getHighScores, setUserScore)
Расскажи, пожалуйста как? Заранее благодарю!Влад писал(а):Я научился сбрасывать рекорды!!!!
Re: Игра «Угадай число» (getHighScores, setUserScore)
Положить файл Main.as рядом с файлом fla ))