📄 fullcardsview.as.svn-base
字号:
/**
* 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 + -