Показать сообщение отдельно
Старый 07.02.2012, 00:07
Vitalya вне форума Посмотреть профиль Отправить личное сообщение для Vitalya Найти все сообщения от Vitalya
  № 1  
Ответить с цитированием
Vitalya

Регистрация: Jan 2012
Сообщений: 26
Игра, КАМЕНЬ НОЖНИЦЫ БУМАГА ДЛЯ КОНТАКТА
моя первая работа, не судите строго!)
Код AS3:
package sps {
	import  vk.*;
	import flash.display.Sprite;
	import flash.events.*;
	import flash.net.*;
 
	public class CWorkingPHP extends Sprite 
	{
	    private var r_i:Object;//сцена
		private var host:String = 'http://vitgame11.guru-hosting.ru/phpGame';//сервер
		private var wins:uint=0;//количество побед
        private var losses:uint=0;//количество поражений
	    private var uidString:String; //текущий пользователь
		private var uid:uint;
		private var xml:XML;// обьект который будет хранить информацию полученную из БД в XML формате
		private var flashVars: Object;//данные из VK
 
		private var flag:Boolean=true;
 
		private var WIN:String = "WIN";
		private var LOOSE:String = "LOOSE";
		private var DRAW:String = "DRAW";
 
//-----------------------------------------------------------------------------------------------конструктор с параметрами
		public function CWorkingPHP(r:Object) 
		{
				r_i = Object(r);//делаем ссылку на сцену
				flashVars = r_i.stage.loaderInfo.parameters as Object;//получаем данные о user 
				uidString = flashVars['viewer_id'];//uid текущего пользователя  
				this.uid = uint(uidString);
				r_i.btn_newgame.visible = false;//кнопка start не видна
				takeData();//загружаем данные из БД
				Game();//процесс игры
		}
//-----------------------------------------------------------------------------------------------настройка видимости кнопок на сцене
		private function hidingButtons(stone:Boolean, scissors:Boolean, paper:Boolean, message:String, flag:Boolean):void
		{
			        r_i.btn_stone.visible = stone;
					r_i.btn_scissors.visible = scissors;
					r_i.btn_paper.visible = paper;
					r_i.txt_message.text = message;
					this.flag = flag;
		}
//-----------------------------------------------------------------------------------------------отправка данных на сервер через PHP
		private function sendData(outcomeGame:uint):void
		{
			var loader:URLLoader = new URLLoader();
			var req:URLRequest = new URLRequest(host+'/setPHP.php');
			var variables :URLVariables = new URLVariables();
			variables.methot = URLRequestMethod.GET;
			variables['uid'] = uid;  
			variables['score_res'] = outcomeGame;
			req.data = variables;
			loader.load(req);
			loader.addEventListener(Event.COMPLETE, updateForms);
		}
//-----------------------------------------------------------------------------------------------получение данных с сервера
		private function dataLoaded(e:Event):void
		{
    	    xml = new XML(e.target.data);
			//парсим XML и сохраняем в глобальные переменные
			this.wins=xml..wins;
			this.losses=xml..losses;
			//полученные данные о победах и поражениях текущего польз. заполняем в формы  
			r_i.txt_wins.text = String(this.wins);
			r_i.txt_losses.text = String(this.losses);
 
		}
 
		private function takeData():void
		{
			var loader:URLLoader = new URLLoader();
			loader.load(new URLRequest(host+'/getPHP.php?uid='+uid));//загружаем php, и походу дела XML
			loader.addEventListener(Event.COMPLETE, dataLoaded);
		}
 
		private function updateForms(e:Event):void
		{
			takeData();
		}
//-----------------------------------------------------------------------------------------------процесс игры
		private function Game():void 
		{
				r_i.btn_stone.addEventListener(MouseEvent.CLICK, pushStone);
				function pushStone(e:MouseEvent):void
				{
				  if(flag)
				  {		
					var temp:uint = randRange(1, 3);//решение компьютера
					if(temp==2)
					{
						wins++;
						sendData(1);//обновление данных в БД
						hidingButtons(true,true,false,WIN,false);//исчезает кнопка не выбранная ни компьютером ни пользователем
						r_i.btn_newgame.visible = true;//появляется кнопка новой игры
					}
					else if(temp==3)
					{
						losses++;
						sendData(0);
						hidingButtons(true,false,true,LOOSE,false);
						r_i.btn_newgame.visible = true;
					}
					else//ничия
					{
						hidingButtons(true,false,false,DRAW,false);
						r_i.btn_newgame.visible = true;
					}
					//обновляем значения в формах
					r_i.txt_wins.text = String(wins);
					r_i.txt_losses.text = String(losses);
				  }
				}
				r_i.btn_scissors.addEventListener(MouseEvent.CLICK, pushScissors);
				function  pushScissors(e:MouseEvent):void
				{
				 if(flag)
				 {
					var temp:uint = randRange(1, 3);//решение компьютера
					if(temp==1)
					{
						losses++;
						sendData(0);
						hidingButtons(true,true,false,LOOSE,false);
						r_i.btn_newgame.visible = true;
					}
					else if(temp==3)
					{
						wins++;
						sendData(1);
						r_i.btn_stone.visible = false;
						r_i.txt_message.text = WIN;
						hidingButtons(false,true,true,WIN,false);
						r_i.btn_newgame.visible = true;
					}
					else
					{
						hidingButtons(false,true,false,DRAW,false);
						r_i.btn_newgame.visible = true;
					}
 
					r_i.txt_wins.text = String(wins);
					r_i.txt_losses.text = String(losses);
				 }
				}
 
				r_i.btn_paper.addEventListener(MouseEvent.CLICK, pushPaper);
				function pushPaper(e:MouseEvent):void
				{
				  if(flag)
				  {
					var temp:uint = randRange(1, 3);//решение компьютера
					if(temp==1)
					{
						wins++;
						sendData(1);
						hidingButtons(true,false,true,WIN,false);
						r_i.btn_newgame.visible = true;
					}
					else if(temp==2)
					{
						losses++;
						sendData(0);
						r_i.btn_stone.visible = false;
						r_i.txt_message.text = LOOSE;
						hidingButtons(false,true,true,LOOSE,false);
						r_i.btn_newgame.visible = true;
					}
					else
					{
						hidingButtons(false,false,true,DRAW,false);
						r_i.btn_newgame.visible = true;
					}
 
					r_i.txt_wins.text = String(wins);
					r_i.txt_losses.text = String(losses);
				  }
				}
				r_i.btn_newgame.addEventListener(MouseEvent.CLICK, newGame);//по нажатию кнопки start, все выставляется по умолчанию
				function newGame(e:MouseEvent):void
				{
					r_i.btn_stone.visible = true;
					r_i.btn_scissors.visible = true;
					r_i.btn_paper.visible = true;
					r_i.txt_message.text = '';
					hidingButtons(true,true,true,'',true);
					r_i.btn_newgame.visible = false;
				}
		}
//-----------------------------------------------------------------------------------------------генерируем цифру 
		private function randRange(minNum:uint, maxNum:uint):uint
		{
			return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
		}
 
	}//class
}//package
Добавлено через 8 минут
Работа выполнялась в Adobe Flash Professional cs5. Я просто накидал сцену, создал кнопки и для того чтоб манипулировать созданной сценой, передаю ссылку на нее в класс...
Удивитесь вы или нет но такой подход описан именно в КОЛИН МУКЕ...