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

📄 fullcardsview.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.classes.CardImageClasses;
	import com.dmh2002.util.MyArray;
	import com.dmh2002.util.MyRandom;
	
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	
	import mx.containers.Canvas;
	import mx.containers.HBox;
	
	public class FullCardsView extends HBox
	{
		
		//整副牌数组的数据源,仅在构造时创建,此后,对扑克牌的洗牌或者重新游戏时使用的为此数据的复制
        private var fullCardsArraySource:Array
        private var fullCardsArray:Array

		//整个洗牌过程中shuffleTimer所需要使用的合计时间
		private const shuffleTimerTotalDelay:uint = 3000
		
		//放牌的地方
		private var tmp:Canvas = new Canvas()
		
		//构造函数
		public function FullCardsView():void
		{
			super()
			
			
			this.height = 200; 
			this.width  = 250;
			
			//设置拥有整副牌的数组数据源
			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*2
			_singleCardView.isShowCard = true
			this.tmp.addChild(_singleCardView)
		}
		
		
		//根据CardImageClasses中的牌面Class来生成拥有所有牌的数组
		private function getFullCardsArray():Array
		{
			//设置临时数组
			var _tmpArray:Array = new Array();
			
			//获取全部牌面Class数组
			var allCardImageArray:Array = new CardImageClasses().getAllCardImageArray();
			
			for( var i:uint=0; i<allCardImageArray.length; i++)
			{
				var _singleCardView:SingleCardView = new SingleCardView(allCardImageArray[i])
				_tmpArray.push(_singleCardView)
			}
			
			return _tmpArray;
		}
	
	}
}

⌨️ 快捷键说明

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