?? user_bottom_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.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
{
//整副牌數(shù)組的數(shù)據(jù)源,僅在構(gòu)造時創(chuàng)建,此后,對撲克牌的洗牌或者重新游戲時使用的為此數(shù)據(jù)的復(fù)制
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();
//構(gòu)造函數(shù)
public function User_Bottom_CardsView():void
{
super()
this.height = _model.BottomTopCardSize_height;
this.width = _model.BottomTopCardSize_width;
//設(shè)置擁有整副牌的數(shù)組數(shù)據(jù)源
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
{
//清空當(dāng)前顯示對象
cleanAllDisplayObject()
//克隆數(shù)組
fullCardsArray = MyArray.clone(fullCardsArraySource) as Array
//將fullCardsArray數(shù)組中的數(shù)據(jù)隨機打亂
fullCardsArray = MyRandom.randomArray(fullCardsArray)
/** 根據(jù)時間將撲克牌一張一張的加入到當(dāng)前顯示對象中 */
//
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()
}
//清空當(dāng)前顯示對象
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);
}
}
//根據(jù)CardImageClasses中的牌面Class來生成擁有所有牌的數(shù)組
private function getFullCardsArray():Array
{
//設(shè)置臨時數(shù)組
var _tmpArray:Array = new Array();
var _tmpCurrentArray:Array=_model.Current_Card_Array.split(",");
//獲取全部牌面Class數(shù)組
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;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -