?? user_left_cardsview.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.games.cardgame.cairngorm.model.CardGameModelLoactor;
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 User_Left_CardsView extends HBox
{
private var _model:CardGameModelLoactor = CardGameModelLoactor.getInstance();
//整副牌數組的數據源,僅在構造時創建,此后,對撲克牌的洗牌或者重新游戲時使用的為此數據的復制
private var fullCardsArraySource:Array
private var fullCardsArray:Array
//整個洗牌過程中shuffleTimer所需要使用的合計時間
private const shuffleTimerTotalDelay:uint = 1000
//放牌的地方
private var tmp:Canvas = new Canvas()
//構造函數
public function User_Left_CardsView():void
{
super()
this.height = _model.LeftRightCardSize_height;
this.width = _model.LeftRightCardSize_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.y = _num*15
_singleCardView.isShowCard = true
this.tmp.addChild(_singleCardView)
}
//根據CardImageClasses中的牌面Class來生成擁有所有牌的數組
private function getFullCardsArray():Array
{
//設置臨時數組
var _tmpArray:Array = new Array();
//獲取全部牌面Class數組
var allCardImageArray:Array = new CardImageClasses().getAllCardBGImageArray();
for( var i:uint=0; i< 11; i++)
{
var _singleCardView:SingleCardView = new SingleCardView(allCardImageArray[i])
_tmpArray.push(_singleCardView)
}
return _tmpArray;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -