计数器触发精灵as3

时间:2010-02-11 16:05:16

标签: flash actionscript-3 sprite

如何使用计数器触发精灵?需要一个例子或想法来工作。

我希望数值加载精灵。计数器的值转到文本字段。我希望每个数字值都有一个“if”条件来播放相应数字的精灵。

alt text http://www.ashcraftband.com/myspace/videodnd/icon_7.jpg

愚蠢的例子
//计数器播放图片而不是在文本字段中播放数字

详细示例
//如果大于0且小于2,则播放1 ==>屏幕上的一个显示

比较
- 可变数据显示“喜欢Flash音乐可视化”
-data是一个计数器而不是

如何运作
- 装载者从计数器接收数字值 -9目标“9个数字空间”
- 添加并删除子项 - 允许反击看起来像任何东西

alt text http://www.ashcraftband.com/myspace/videodnd/icon-3.jpg

我想使用

//"counts to a million with two decimal places" <br>
var timer:Timer = new Timer(10); 
var count:int = 0; //start at -1 if you want the first decimal to be 0<    
var fcount:int = 0;   


timer.addEventListener(TimerEvent.TIMER, incrementCounter);    
timer.start();    

function incrementCounter(event:TimerEvent) {    
  count++;    
  fcount=int(count*count/10000);//starts out slow... then speeds up   
  mytext.text = formatCount(fcount);  
}  

function formatCount(i:int):String {   
     var fraction:int = i % 100;   
     var whole:int = i / 100;   

    return ("0000000" + whole).substr(-7, 7) + "." + (fraction < 10 ? "0" + fraction : fraction);   
} 

2 个答案:

答案 0 :(得分:1)

你想做这样的事吗?

http://shaneberry.net/numbers/

如果是这样,我可以为源提供一个链接。

答案 1 :(得分:0)

如果我理解你的问题,你需要一个屏幕上的计数器,它为每个数字位数使用不同的图像/精灵。

您可以将formatCount修改为以下内容:

var decimal_space:int = 5;  //the amount of space for the"."
var width_of_sprite:int = 16;
var decimal_digits:int = 2;
var whole_digits:int = 7;
var sprites:Array = new Array();

//this will create sprites for the whole digits from left to right
for (var i:int = 0; i < whole_digits; i++) {
  var s:Sprite = new Sprite();
  s.x = i * width_of_sprite + decimal_space;
  sprites.push(s);
  this.addChild(s);
}

//this will create sprites for the decimal digits from left to right
for (var i:int = 0; i < decimal_digits; i++) {
  var s:Sprite = new Sprite();
  s.x = (i + decimal_digits) * width_of_sprite + decimal_space;
  sprites.push(s);
  this.addChild(s);
}

function formatCount(c:int):String {   
  for (var i:int = whole_digits + decimal_digits - 1; i >= 0; i--) {
    redraw_sprite(sprites[i],c % 10);
    c = (c - (c % 10)) / 10;
  }
} 

function redraw_sprite(sprite:Sprite, value:int):void {
  //add code here to redraw each sprite
}