⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user_bottom_cardsview.as

📁 Flex3实现的掼蛋游戏
💻 AS
字号:
 /**
  * Project: 整副扑克牌 显示对象(可视对象)
  * Author : dmh2002 
  * Blog:http://dmh2002.com/
  * QQ:122054933 MSN:shangxinyu2002@msn.com 
  * Date : 2008.04.10 
  */     
package com.dmh2002.games.cardgame.cairngorm.view
{
	import com.dmh2002.games.cardgame.cairngorm.model.CardGameModelLoactor;
	import com.dmh2002.games.cardgame.classes.CardImageClasses;
	import com.dmh2002.util.MyArray;
	import com.dmh2002.util.MyRandom;
	
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	
	import mx.containers.Canvas;
	import mx.containers.HBox;
	
	import mx.controls.Alert;
	
	public class User_Bottom_CardsView extends HBox
	{
		
		//整副牌数组的数据源,仅在构造时创建,此后,对扑克牌的洗牌或者重新游戏时使用的为此数据的复制
        private var fullCardsArraySource:Array
        private var fullCardsArray:Array

		//整个洗牌过程中shuffleTimer所需要使用的合计时间
		private const shuffleTimerTotalDelay:uint = 1000
		
		//放牌的地方
		private var tmp:Canvas = new Canvas()
		private var point:uint= 0
		
		private var _model:CardGameModelLoactor = CardGameModelLoactor.getInstance(); 
		
		//构造函数
		public function User_Bottom_CardsView():void
		{
			super()
			
			
			this.height = _model.BottomTopCardSize_height; 
			this.width  = _model.BottomTopCardSize_width;
			
			//设置拥有整副牌的数组数据源
			fullCardsArraySource = getFullCardsArray()
			
			//this.setStyle("borderStyle","inset")
			this.setStyle("verticalAlign","middle")
			this.setStyle("horizontalAlign","center")			
			this.setStyle("horizontalGap",0)
			
			this.addChild(tmp)
			//开始洗牌
			shuffle()
			//var oneCard:SingleCardView=new SingleCardView(_cardsImage.CLUBS_A)
			//oneCard.isShowCard = true
			//this.addChild(oneCard);
			
		}
		/**===================== 
		 *=======公开方法========
		 *======================
		 */
		
		//洗牌
		public function shuffle():void
		{
			//清空当前显示对象
			cleanAllDisplayObject()
			//克隆数组
			fullCardsArray = MyArray.clone(fullCardsArraySource) as Array
			//将fullCardsArray数组中的数据随机打乱
			fullCardsArray = MyRandom.randomArray(fullCardsArray)
			/** 根据时间将扑克牌一张一张的加入到当前显示对象中 */
			//
			var _repeatCount:uint = fullCardsArray.length
			var _delay:uint = Math.round(shuffleTimerTotalDelay/_repeatCount)
			var shuffleTimer:Timer = new Timer(_delay,_repeatCount)
			shuffleTimer.addEventListener(TimerEvent.TIMER,onShuffleTimer)
			shuffleTimer.start()
			
			
		}
		
		//清空当前显示对象
		public function cleanAllDisplayObject():void
		{
			
			trace("====cleanAllDisplayObject======")
			
			var count:int =this.tmp.numChildren;
			trace(count)
			for (var i:uint=0 ;i<count ; i++)
			{
				this.tmp.removeChildAt(0)
				trace(i)
			}
			trace("====end======")
		}
		
		/**===================== 
		 *=======私有方法========
		 *======================
		 */
		//洗牌时,将每张牌加入addChild到this中
		private function onShuffleTimer(e:TimerEvent):void
		{
			var _num:uint = e.target.currentCount
			var _singleCardView:SingleCardView = fullCardsArray[_num-1] as SingleCardView
			
			_singleCardView.x = _num*10

			_singleCardView.y = _singleCardView.y + 15
			_singleCardView.UpDownState = true

			_singleCardView.isShowCard = true
			
			
			_singleCardView.addEventListener(MouseEvent.CLICK,OnClickUpCard)
			
			this.tmp.addChild(_singleCardView)
		}
		
		private function OnClickUpCard(event:MouseEvent):void
		{
			var _singleCardView:SingleCardView= SingleCardView(event.currentTarget);
			if (_singleCardView.UpDownState == false)
			{
				_singleCardView.y = _singleCardView.y + 10;
				_singleCardView.UpDownState = true
			}
			else
			{
				_singleCardView.y = _singleCardView.y - 10;
				_singleCardView.UpDownState = false
				
				
				//_model.Current_Card_Array.push(_singleCardView);
				Alert.show("this0:" + _singleCardView._cardSuitVO.name + "," + _singleCardView._cardSuitVO.value, "titleabc", Alert.YES | Alert.NO); 
			}
			
		}
		
		//根据CardImageClasses中的牌面Class来生成拥有所有牌的数组
		private function getFullCardsArray():Array
		{
			//设置临时数组
			var _tmpArray:Array = new Array();
			var _tmpCurrentArray:Array=_model.Current_Card_Array.split(",");

			//获取全部牌面Class数组
			var allCardImageArray:Array = new CardImageClasses().getAllCardImageArray();
			
			for( var i:uint=0; i<allCardImageArray.length; i++)
			{
				var _singleCardView:SingleCardView = new SingleCardView(allCardImageArray[i])
				for( var n:uint=0; n<_tmpCurrentArray.length; n++)
				{
					if(_singleCardView._GetClassName.toUpperCase() == _tmpCurrentArray[n].toString())
					_tmpArray.push(_singleCardView)
					//Alert.show("this1:" + _singleCardView._GetClassName.toUpperCase(), "titlec:" + _tmpCurrentArray[n].toString(), Alert.YES | Alert.NO); 
					
				}

				
			}
			return _tmpArray;
		}
	
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -