Fisana's test forum: Fisana's test forum

Jump to content

Board Index

Реклама


Icon Самые популярные темы на форуме

Исходник приложения онлайн радио вконтакте
Автор: BORA - 02.04.2013, 16:28
iframe приложения без php !
Автор: BORA - 24.07.2011, 22:22
Простой чат на AS3
Автор: BORA - 15.03.2013, 17:30
Игра «Угадай число»
Автор: BORA - 22.04.2012, 02:11
Исходник отправки уведомлений
Автор: BORA - 24.11.2011, 22:21
Чат (2)
Автор: BORA - 30.07.2011, 20:32
Конструктор сайтов (Только новичкам !!!)
Автор: BORA - 15.08.2015, 04:29
Создание mp3 проигрывателя В Контакте
Автор: BORA - 02.08.2012, 10:52
API метод Freinds.get
Автор: BORA - 31.07.2012, 22:36
Скрипт : Собшения снизу как "В контакте"
Автор: BORA - 08.02.2012, 02:09
  • Страница 1 из 1
  • 1
Форум Web-Мастера » Приложения для В контакте » Исходники » Игра «Угадай число»
Игра «Угадай число»
BORAДата: Среда, 19.01.2011, 18:01 | Сообщение # 1
Группа: Администраторы
Сообщений: 81
Репутация: 2
Статус: Offline
Когда-то давно делал эту игру. Решил выложить её исходник в свободный доступ, добавив комментарии к коду.
В конце этого сообщения ссылка на исходник с дизайном. Вы можете создать свой дизайн.
Используется сторонняя библиотека VkApi, для работы с методами Вконтакте API. Находится в архиве с исходником.

В итоге у вас может получиться примерно такое приложение:

Приложение написано на ActionScript 3.0 в Adobe Flash CS4.

1. Добавляем на сцену:
Текстовые поля с именами:
- message_tf (будет выводиться сообщение о результате)
- input_tf (поле ввода)
- try_count_tf (информация об оставшихся попытках)
- records_tf (список рекордов)

Кнопку guess_btn.

2. Создаём Main.as и пишем код:

Code


package {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
        import flash.text.*;
        import flash.ui.ContextMenu;
        import flash.ui.ContextMenuItem;
        import vk.VkApiNode;
         
        public class Main extends Sprite {
            private var api_id:Number=1727522;// ID приложения
            private var api_secret:String="1gqE8m34rb";// секретный ключ
            private var beginMessage:String;
            private var randomNumber:uint;
            private var my_guess:uint;
            private var try_count:int;
            private var api:VkApiNode;
            private var url_loader:URLLoader;
            private var url_request:URLRequest;
            private var query:String;
            private var uids:Array;
            private var fields:Array;
            private var viewer_id:Number;
         
            public function Main():void {
                // настройка меню по правому клику мыши
                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();
            }
         
            public 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);
            }
         
            public 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);
                }
            }
         
            public 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);
            }
         
            public function guessAgain(event:MouseEvent):void {
                init();
            }
         
            public 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);
            }
         
            public 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);
            }
         
            public 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>
';
                    }
                    records_tf.htmlText=topUsers;
                } else {
                    trace("Error!");
                }
            }
         
            public function onLoaded2(event:Event):void {
                getHightScores();
            }
         
        }
}

Заменяем app_id и api_secret на свои данные.

3. Подключаем Main.as к fla.

4. Загружаем приложение в контакт.
- Если приложение выключено, то включаем.
- Если включен контейнер, то выключаем.

Исодник : guess_game.rar


Прикрепления: 9172929.png (19.1 Kb) · guess_game.rar (17.6 Kb)
 
leaderruДата: Пятница, 01.04.2011, 06:57 | Сообщение # 2
Группа: Пользователи
Сообщений: 1
Репутация: 100
Статус: Offline
Классно. Я такое только на c# делал biggrin
 
fanaticusДата: Воскресенье, 22.04.2012, 02:11 | Сообщение # 3
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Помогите поставить
 
Форум Web-Мастера » Приложения для В контакте » Исходники » Игра «Угадай число»
  • Страница 1 из 1
  • 1
Поиск: