?? singlecardview.as.svn-base
字號(hào):
/**
* Project: 單張撲克牌 可視對(duì)象類
* Author : dmh2002
* Blog: 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.vo.CardFaceVO;
import com.dmh2002.games.cardgame.cairngorm.vo.CardSuitVO;
import com.dmh2002.games.cardgame.classes.CardImageClasses;
import flash.display.DisplayObject;
import mx.core.IFlexDisplayObject;
import mx.core.UIComponent;
import mx.controls.Alert;
import com.dmh2002.games.cardgame.cairngorm.model.CardGameModelLoactor;
//自定義樣式 撲克牌面圖片
[Style(name="cardImages", type="Class", inherit="no")]
public class SingleCardView extends UIComponent
{
/** 定義屬性 */
private var _model:CardGameModelLoactor = CardGameModelLoactor.getInstance();
//撲克牌大小 常量
private const cardWidth:uint = _model.SingleCardSize_width //130//171;
private const cardHeight:uint = _model.SingleCardSize_height //195//255;
//撲克牌值大小/花型 只讀 僅在初始化時(shí)設(shè)定
public var _cardFaceVO:CardFaceVO;
public var _cardSuitVO:CardSuitVO;
//撲克 前景/背景 圖片 私有 僅在初始化時(shí)設(shè)定
private var _cardFGClass:Class;
private var _cardBGClass:Class;
//顯示牌面還是顯示牌背 默認(rèn)顯示牌背
private var _isShowCard:Boolean
//用于存放當(dāng)前顯示牌面的顯示對(duì)象
private var cardImageSkin:IFlexDisplayObject
public var UpDownState:Boolean = false
public var _GetClassName:String = ""
/** get/set 存儲(chǔ)器 */
//牌面值對(duì)象 3,4,5,6,7,8,9,j,q,k,a,2 只讀(僅構(gòu)造時(shí)設(shè)定)
public function get cardValue():CardFaceVO
{
return this._cardFaceVO
}
//牌面花型對(duì)象 只讀(僅構(gòu)造時(shí)設(shè)定)
public function get cardSuit():CardSuitVO
{
return this._cardSuitVO;
}
//當(dāng)前顯示的是牌面還是牌背 屬性 true為顯示牌面 false顯示牌背
public function get isShowCard():Boolean
{
return this._isShowCard;
}
public function set isShowCard(value:Boolean):void
{
if ( isShowCard == value && getStyle("cardImage")!= undefined)
return
else
if( value )
this.setStyle("cardImage",this._cardFGClass);
else
this.setStyle("cardImage",this._cardBGClass);
}
/** 構(gòu)造函數(shù) */
public function SingleCardView(cardFGClass:Class):void
{
super();
//設(shè)置撲克大小
this.width = cardWidth;
this.height = cardHeight;
//設(shè)置前景樣式、牌值、花型
this._cardFGClass = cardFGClass;
this._cardBGClass = CardImageClasses.BGIMAGE_CLASS;
//從ClassName中分析牌面信息并設(shè)置
var _faceAndSuitName:FaceAndSuitName = getFaceAndSuitName(new _cardFGClass().name)
this._GetClassName = _faceAndSuitName.suitName + "_" + _faceAndSuitName.faceName
//設(shè)置牌面對(duì)象屬性
this._cardFaceVO = new CardFaceVO(_faceAndSuitName.faceName);
//設(shè)置花型對(duì)象屬性
this._cardSuitVO = new CardSuitVO(_faceAndSuitName.suitName);
//設(shè)置默認(rèn)樣式為顯示牌背
this.isShowCard = false;
}
/**=====================
*=======公開方法=========
*======================
*/
/** 設(shè)置樣式方法 */
override public function styleChanged(styleProp:String):void
{
var allStyles:Boolean = !styleProp || styleProp == "styleName";
super.styleChanged(styleProp);
//
if (allStyles || styleProp == "cardImage")
{
var cardPicClass:Class = getStyle("cardImage");
if (cardPicClass)
{
if(cardImageSkin)
{
removeChild(DisplayObject(cardImageSkin));
cardImageSkin = null;
}
cardImageSkin = new cardPicClass()
cardImageSkin.width = cardWidth;
cardImageSkin.height = cardHeight;
this.addChildAt(DisplayObject(cardImageSkin), 0);
}
}
//
}
/**=====================
*=======私有方法=========
*======================
*/
/** 解析_cardFGClass.name 方法
* 每一個(gè)撲克牌面Class的名稱都有
* CardImageClasses_SPADES_K5
* CardImageClasses_CLUBS_10_9
* CardImageClasses 字符串 + CLUBS(花型字符串)+ 10 (牌面值字符串組成)
* 可以用以設(shè)置_cardFace屬性以及_cardSuit屬性
* 參數(shù) cardFGClassName:String
* 返回 faceAndSuitName 牌面名以及花型名對(duì)象
* */
private function getFaceAndSuitName(cardFGClassName:String):FaceAndSuitName
{
if (cardFGClassName == null)
{
return null;
}
else
{
// Alert.show("--this:" + cardFGClassName, "titlec:" + cardFGClassName, Alert.YES | Alert.NO);
var _tmpArray:Array=cardFGClassName.split("_");
var _tmpFaceAndSuitName:FaceAndSuitName=new FaceAndSuitName();
//獲取牌面值的第一個(gè)字符 因?yàn)閖,q,k,a獲取時(shí)后面會(huì)有一個(gè)未知含義的數(shù)字
var _fristString:String=_tmpArray[2].toString().charAt(0)
if( _fristString == "J" || _fristString == "Q" || _fristString == "K" || _fristString == "A" || _fristString == "W" || _fristString == "V" )
_tmpFaceAndSuitName.faceName=_fristString;
else
_tmpFaceAndSuitName.faceName=_tmpArray[2].toString();
_tmpFaceAndSuitName.suitName=_tmpArray[1].toString().toLowerCase()
return _tmpFaceAndSuitName
}
}
//
}
}
class FaceAndSuitName{
public var faceName:String
public var suitName:String
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -