当前位置:软件学习 > Flash >>

flash动画滚动效果

//显示数字
//要定义的对象名,电影实例,数字长度,递加的步长,起始分数
function ini_objShowNum(objShowNum:Object, mcTarget:MovieClip, numLen:Number, numStep:Number, numStar:Number) {
//目标电影实例
objShowNum.mcTarget = _root;
//最终结果
objShowNum.numEnd = 0;
//当前数字变化显示的分数
objShowNum.num = 0;
//递增的步数
objShowNum.numStep = 1;
//是否开始变化
objShowNum.isGo = false;
//显示数字的长度
objShowNum.numLen = 0;
//初使化
objShowNum.ini = function(mcTarget:MovieClip, numStep:Number, numStar:Number, numLen:Number) {
  this.mcTarget = mcTarget;
  this.numStep = numStep;
  this.num = numStar;
  this.numStar = numStar;
  this.numLen = numLen;
  this.mcShowNum();
};
//增加分数
objShowNum.addNum = function(num:Number) {
  this.isGo = true;
  this.numEnd += num;
};
//放在循环的onEnterFrame中。用于递增显示的效果
objShowNum.go = function() {
  if (!this.isGo) {
   return 0;
  }  
  if (this.num+this.numStep>=this.numEnd) {
   this.num = this.numEnd;
   this.isGo = false;
  } else {
   this.num += this.numStep;
  }
  this.mcShowNum();
};
//显示一组数字
objShowNum.mcShowNum = function() {
  var mc:MovieClip = this.mcTarget;
  var num:Number = this.num;
  var _l5:Number = this.numLen;
  var strNum = String(num);
  var str = "";
  for (var i = 1; i<=(_l5-strNum.length); i++) {
   str += "0";
  }
  strNum = str+strNum;
  // end if
  var numI:Number = 0;
  while (numI<_l5) {
   var numTem:Number = Number(strNum.substr(numI, 1));
   if (numTem == 0) {
    mc["mc"+(numI+1)].gotoAndStop(10);
   } else {
    mc["mc"+(numI+1)].gotoAndStop(numTem);
   }
   // end if
   numI++;
  }
  // end while
};
//执行初使化
objShowNum.ini(mcTarget, numStep, numStar, numLen);
}
////////////////
//游戏得分显示递增的效果
//smallerbird 2008-9-4
//flash原创教程 尽在自娱自乐 www.mygamemylove.com
//原代码下载地址:http://www.mygamemylove.com/t_html/620.html
//操作步骤
//1.要一个电影实例:条件:里面有代表每一位数字的元件(这个元件里有10帧,分别入以下数字1,2,3,4,5,6,7,8,9,0)。
//要显示几位就放几个,排列好。命名为:mc1,mc2,mc3...;例如:要三位数:好就要用三个mc1,mc2,mc3(mc1表示百位,mc2表示十位,mc3表示个位)
//2.初使化:
var objShowNum_1:Object = new Object();
var mcNum:MovieClip;
ini_objShowNum(objShowNum_1, mcNum, 9, 1, 0);
//3.检测函数,为什么不放在mcNum的onEnterFrame,我觉得所有的循环放在一个地方比较好管理。
_root.onEnterFrame = function() {
objShowNum_1.go();
};
//当前的步长
var mcBtn1:MovieClip;
txt1.text = objShowNum_1.numStep;
mcBtn1.onRelease = function() {
//步和不能大于要加的数
if (_root.objShowNum_1.numStep+1<_root.objShowNum_1.numEnd) {
  _root.objShowNum_1.numStep++;
}
_root.txt1.text = _root.objShowNum_1.numStep;
};
var mcBtn3:MovieClip;
mcBtn3.onRelease = function() {
////步和不能小于0
if ((_root.objShowNum_1.numStep-1)>0) {
  _root.objShowNum_1.numStep--;
}
_root.txt1.text = _root.objShowNum_1.numStep;
};
//游戏得分显示递增的效果
//smallerbird 2008-9-4
//flash原创教程 尽在自娱自乐
www.mygamemylove.com
//原代码下载地址:http://www.mygamemylove.com/t_html/620.html
//结果数
var mcBtn2:MovieClip;
txt2.text = "0";
mcBtn2.onRelease = function() {
_root.objShowNum_1.addNum(10);
_root.txt2.text = _root.objShowNum_1.numEnd;
};
var mcBtn4:MovieClip;
mcBtn4.onRelease = function() {
//增加
_root.objShowNum_1.addNum(100);
_root.txt2.text = _root.objShowNum_1.numEnd;
};

补充:flash教程,动画技术 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,