动态添加筹码与用户金币数关联

  今天做项目,研究了很久让用户金币数与筹码图片相关联,效果很简单,整除int,

  第一个类:玩家的初始金币(v)和座位号seat

 1 package showHand
2 {
3 import flash.display.Sprite;
4 import flash.geom.Point;
5 public class BetAction extends Sprite
6 {
7
8 public function BetAction()
9 {
10
11 }
12
13 /*
14 * 拆注方法
15 */
            //seat为玩家座位号
16 public function tearCount(v:int, seat:int):void
17 {
18 var f:int = v;
19 var posStart:Array = [new Point( 155, 150 ), new Point( 240, 270 ), new Point( 530, 330 ), new Point(750, 270), new Point(840, 150) ];
20 var posEnd:Array = [ new Point(420, 80 ), new Point(480, 100 ), new Point( 520, 90), new Point(540, 100), new Point(560, 110) ];
21 var base:Array = [500, 100, 50, 10, 5, 1];
22 var arg:Array = [];
23 for (var i:int = 0; i < base.length; i++)
24 {
25 arg.push(Math.floor(f / base[i]));
26 f %= base[i];
27 }
28 for (var j:int = 0 ; j < arg.length; j++)
29 {
30 if (arg[j] > 0)
31 {
32 for (var k:int = 0; k < arg[j]; k++)
33 {
34 var bt:Bet = new Bet(j);
35 var p1:Point = new Point();
36 p1.x = Math.floor( (Math.random() - 0.5) * 100) * k + j * 20 + posStart[seat].x;
37 p1.y = Math.floor( (Math.random() - 0.5) * 100) * k + j * 20 + posStart[seat].y;
38 var p2:Point = new Point();
39 p2.x = Math.floor((Math.random() - 0.5) * 100) * k + j * 20 + posEnd[seat].x;
40 p2.y = Math.floor((Math.random() - 0.5) * 100) * k + j * 20 + posEnd[seat].y;
41 this.addChild(bt);
42 bt.MoveTo(p1, p2);
43 }
44 }
45 }
46 }
47 }
48 }

 第二个类为加注动画

 

package showHand
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.utils.setTimeout;

public class Bet extends Sprite
{
private var _endpoint:Point;
private var _startPoint:Point;
//private var _bd:Gold;
private var _bitData:BitmapData;

/*
* @param i 0:500,1:100,2:50,3:10,4:5,5:1;
*/
public function Bet(i:int):void
{
//trace('Bet:' + i);
if (i<0 && i>6)return;

var _bd:Gold = new Gold();
_bitData = _bd;
var tbd:BitmapData = new BitmapData(48,41);
tbd.copyPixels(_bitData, new Rectangle(i*48, 0, 48,41), new Point(0, 0));

var bmp:Bitmap = new Bitmap(tbd);
this.addChild(bmp);
}



/*
* 加注动画
*/
public function MoveTo(p1:Point, p2:Point):void
{
if (!p1 || !p2) return;
_startPoint = p1;
_endpoint = p2;
this.addEventListener(Event.ENTER_FRAME, onEnter);
}

private function onEnter(e:Event):void
{
var x1:Number = _startPoint.x;
var y1:Number = _startPoint.y;
var x2:Number = _endpoint.x;
var y2:Number = _endpoint.y;

var dx:Number = x2 - x1;
var dy:Number = y2 - y1;
var angle:Number = Math.atan2(dy, dx);
var vx:Number = Math.cos(angle) * 60;
var vy:Number = Math.sin(angle) * 60;
this.x += vx;
this.y += vy;

_startPoint.x = this.x;
_startPoint.y = this.y;

if (this.x >= x2 && this.y >= y2) this.removeEventListener(Event.ENTER_FRAME, onEnter);
}
}
}

  在时间帧里面实例化BetAction

var uo:BetAction = new BetAction();

//1350玩家金币数可随意修改,1为玩家座位号
uo.tearCount(1350,1);
this.addChild(uo);

导入到库>右键属性>为as导出 showHand.Gold

效果swf

posted @ 2011-10-25 18:06  独步寻花  阅读(157)  评论(0编辑  收藏  举报