RSP.as==============================================================================================
package code
{
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.net.*;
public class RSP extends Sprite
{
private var coins:int;
private var gameMode:String;
private var intervalObj:uint;
public function RSP()
{
coins = 5;
coin.addCoinNum(coins);
count_mc.live(this);
rock_btn.buttonMode = true;
scissor_btn.buttonMode = true;
paper_btn.buttonMode = true;
link_btn.buttonMode = true;
rock_btn.addEventListener(MouseEvent.CLICK, clickHandler);
scissor_btn.addEventListener(MouseEvent.CLICK, clickHandler);
paper_btn.addEventListener(MouseEvent.CLICK, clickHandler);
link_btn.addEventListener(MouseEvent.CLICK, clickHandler);
startGame();
}
private function startGame():void
{
gameMode = "WAIT";
dis_mc.play();
initCoinHole();
}
public function addCoins(coinNum:int):void
{
coins += coinNum;
coin.addCoinNum(coins);
startGame();
}
private function initCoinHole():void
{
coinHole_mc.gotoAndStop(1);
if(coins > 0)
{
coinHole_mc.buttonMode = true;
coinHole_mc.addEventListener(MouseEvent.ROLL_OVER, overHandler);
coinHole_mc.addEventListener(MouseEvent.ROLL_OUT, outHandler);
coinHole_mc.addEventListener(MouseEvent.CLICK, clickHandler);
}
}
private function resetCoinHole():void
{
coinHole_mc.buttonMode = false;
coinHole_mc.removeEventListener(MouseEvent.ROLL_OVER, overHandler);
coinHole_mc.removeEventListener(MouseEvent.ROLL_OUT, outHandler);
coinHole_mc.removeEventListener(MouseEvent.CLICK, clickHandler);
}
private function overHandler(e:MouseEvent):void
{
var obj:Object = e.target;
obj.gotoAndStop(2);
}
private function outHandler(e:MouseEvent):void
{
var obj:Object = e.target;
obj.gotoAndStop(1);
}
private function selectHand(hand:String):void
{
if(gameMode == "READY" || gameMode == "RETRY")
{
if(gameMode == "READY")
{
var go:Go = new Go();
go.play();
}
else{
var reGo:ReGo = new ReGo();
reGo.play();
}
var match:int = dis_mc.getMatch(hand);
switch(match)
{
case 0 :
intervalObj = setInterval(playAgain, 500, "win");
break;
case 1 :
intervalObj = setInterval(playAgain, 500, "lose");
break;
case 2 :
intervalObj = setInterval(playAgain, 500, "draw");
break;
}
gameMode = "RESULT";
}
}
private function playAgain(res:String):void
{
clearInterval(intervalObj);
if(res == "win")
{
count_mc.winCount();
}
else if(res == "lose"){
var lose:Lose = new Lose();
lose.play();
startGame();
}
else if(res == "draw"){
var reReady:ReReady = new ReReady();
reReady.play();
dis_mc.play();
gameMode = "RETRY";
}
}
private function insertCoin():void
{
if(gameMode == "WAIT")
{
coinHole_mc.gotoAndStop(1);
coins--;
coin.removeCoinNum();
resetCoinHole();
var ready:Ready = new Ready();
ready.play();
gameMode = "READY";
}
}
private function clickHandler(e:MouseEvent):void
{
var tObj:Object = e.currentTarget;
switch(tObj)
{
case coinHole_mc :
insertCoin();
break;
case rock_btn :
selectHand("rock");
break;
case scissor_btn :
selectHand("scissor");
break;
case paper_btn :
selectHand("paper");
break;
case link_btn :
navigateToURL(new URLRequest("http://shallaazm.tistory.com"));
break;
}
}
}
}
=====================================================================================================
Coin.as=============================================================================================
package code
{
import flash.display.*;
import flash.events.*;
public class Coin extends MovieClip
{
private var targetFrame:int;
public function Coin()
{
this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
public function addCoinNum(targetFrame:int):void
{
if(targetFrame > 0)
{
this.targetFrame = (targetFrame + 1);
play();
}
}
public function removeCoinNum():void
{
var tFrame:int = this.currentFrame;
if(tFrame > 1)
{
this.gotoAndStop(tFrame - 1);
}
}
protected function enterFrameHandler(e:Event):void
{
if(this.currentFrame == targetFrame)
{
stop();
}
}
}
}
=====================================================================================================
Dis.as===============================================================================================
package code
{
import flash.display.*;
import flash.events.*;
public class Dis extends MovieClip
{
public function getMatch(hand:String):int
{
this.stop();
var match:int;
switch(this.currentFrame)
{
case 1 :
match = matchHand(hand, "rock");
break;
case 2 :
match = matchHand(hand, "scissor");
break;
case 3 :
match = matchHand(hand, "paper");
break;
}
return match;
}
private function matchHand(user:String, com:String):int
{
var res:int;
if(user == com)
{
res = 2;
}
else if(user == "rock"){
if(com == "scissor")
{
res = 0;
}
else{
res = 1;
}
}
else if(user == "scissor"){
if(com == "paper")
{
res = 0;
}
else{
res = 1;
}
}
else if(user == "paper"){
if(com == "rock")
{
res = 0;
}
else{
res = 1;
}
}
return res;
}
}
}
=====================================================================================================
Count.as============================================================================================
package code
{
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class Count extends MovieClip
{
private var intervalObj:uint;
private var owner;
public function live(ref:*):void
{
this.owner = ref;
}
public function Count()
{
stop();
}
public function winCount():void
{
var viva:Viva = new Viva();
viva.play();
play();
intervalObj = setInterval(setCoinsNum, 5000);
}
private function setCoinsNum():void
{
clearInterval(intervalObj);
var stopPoint:int = Math.random()*11 + 2;
gotoAndStop(stopPoint);
setCoins();
}
private function setCoins():void
{
var countNum:int = this.currentFrame;
var coinsCount:int;
switch(countNum)
{
case 1 :
gotoAndStop(2);
case 2 :
coinsCount = 4;
break;
case 3 :
coinsCount = 1;
break;
case 4 :
coinsCount = 2;
break;
case 5 :
coinsCount = 7;
break;
case 6 :
coinsCount = 4;
break;
case 7 :
coinsCount = 2;
break;
case 8 :
coinsCount = 20;
break;
case 9 :
coinsCount = 1;
break;
case 10 :
coinsCount = 2;
break;
case 11 :
coinsCount = 4;
break;
case 12 :
coinsCount = 7;
break;
case 13 :
coinsCount = 2;
break;
}
owner.addCoins(coinsCount);
}
}
}
=====================================================================================================
** 가위, 주먹, 보자기 이미지, Sound는 검색중에 다운받은 fla에서 복사했습니다. 출처를 까먹어서..;;
혹시 출처를 알게되면 출처 적겠습니다.
'OM' 카테고리의 다른 글
Card Match 2 (0) | 2008.05.04 |
---|---|
원 그리기 (MouseListener) (0) | 2008.05.02 |
디지털 시계 (0) | 2008.05.02 |
숫자 야구 게임 (0) | 2008.05.02 |
War zero (0) | 2008.04.14 |
동영상 플레이어 (FLVPlayback) 2 (0) | 2008.04.10 |
동영상 플레이어 (FLVPlayback) (0) | 2008.04.10 |
3X3 Puz (0) | 2008.04.10 |
Card Match (0) | 2008.04.08 |