Flash V2组件学习之V2扑克牌

类别:编程语言 点击:0 评论:0 推荐:

  本文意图通过制作一个简单的V2组件来说明V2组件的好处。

  因前2次都写到一半停电或是死机了,本次已再没有激情去修饰,简单介绍一下编写V2组件扑克牌的过程吧。

一、准备工作

  首先你要找好52张牌的图像,大小王我没处理,如果你愿意的话修改就可以了,应该不超过2行。这52张图像导入到Flash MX 2004中,然后打开库窗口,在每一个图像上右击,选择“链接”,勾上“为运行时共享导出”,并在“标识符”文本框中输入一个规范的名字,这个名字命名规则如下:

  一张牌的名字由2个字符组成,前一个字符代表花色,分别是S(黑桃)、H(红桃)、C(草花)、D(方块)。第二个字符代表牌值,1代表A,2-9、J、Q、K分别对应扑克中的2-9、J、Q、K,0代表10。

二、编写类

  因为本文2次写作过程都遇到意外,本次只简单把代码发上来吧,应该容易看得懂。

import mx.core.UIComponent

class Card extends MovieClip
{
 private var _value : String;


 [Inspectable(name="Card value", defaultValue="H1")]
 function set value (t:String) : Void
 {
  _value = t;

  if (t.length != 2)
  {
   trace ("Invalid card value: "+t);
  }
  else if (t.charAt (0) != 'H' && t.charAt (0) != 'C' && //color
    t.charAt (0) != 'S' && t.charAt (0) != 'D') 
  {
   trace (Formatter.format ("Invalid card color [%ARG%].", [t]));
   this.show = false;
  }
  else if ((t.charAt (1) == "J" || t.charAt (1) == "Q" || t.charAt (1) == "K") ||  //value
    (t.charAt (1) <= "9" && t.charAt (1) >= "0"))
  {
   this.attachMovie (t, this._name, this.getDepth ());
  }
  else
  {
   trace ("Invalid card value: "+t);
   this.show = false;
  }
 }

 [Inspectable(name="Show", defaultValue=true)]
 function set show (t:Boolean) : Void
 {
  if (_error)
   t = false;
  setProperty (this, _visible, t);
 }

 function get point () : Number
 {
  if (_value.charAt (1) >= '0' && _value.charAt (1) <= '9')
   return _value.charAt (1) - '0';
  return 0;
 }
}

三、完成组件

  这个步骤很简单了,在Flash MX 2004中添加一个影片剪辑(MovieClip),名称随意,按照我前篇文章里的方法链接到Card类,这个组件就完成了。

四、测试

  放置一个组件实例到场景中,命名为card,然后可以通过组件面板或者是脚本去控制,直接给它赋值即可,_root.card.value = “H3“; 即可让它显示出红桃3。

  在组件面板中输入牌的名字可能无法直接更新在场影中,以后再有时间的话再告诉大家怎么做到这一点。

本文地址:http://com.8s8s.com/it/it27250.htm