是否有想过在自己开发的游戏中使用自己制作的数字样式来显示一些数字数据信息但又觉得用编程来实现麻烦呢?那么下面我写的这个函数可能帮得到你。你只要把函数贴到你的影片中就可以直接调用此函数来显示你制作的数字样式了。以下是函数的源代码:
//利用影片复制的功能来显示数字
var ID:Number = 0;
//时间帧变量ID是代表了新数字影片的序号.
//在有链接名称的样式前提下直接从库中调用此样式显示数字
function showLinkTypeNumber(LinkName:String, trager:Object, number, appX, appY, scX, scY:Number, spc:Number):Boolean {
//参数说明
//LinkName:链接名称,即是给样式起的链接标识符
//trager:目标影片,指将数字复制到哪一个影片上
//number:要显示的数字
//appX,appY:显示数字的起始坐标
//scX,scY:分别表示影片的水平增量和垂直增量
//spc:相邻数字的间隔,如果不设置则间距为影片的宽度
var temp:Number = number;
var count:Number = 0;
var i:Number;
do {
trager.attachMovie(LinkName, LinkName+ID, trager.getNextHighestDepth());
for (i=ID-count; i<ID; i++) {
if (spc != undefine) {
trager[LinkName+i]._x += spc;
} else {
trager[LinkName+i]._x += trager[LinkName+i]._width;
}
}
if (scX != undefine) {
trager[LinkName+ID]._xscale = scX;
}
if (scY != undefine) {
trager[LinkName+ID]._yscale = scY;
}
trager[LinkName+ID]._x = appX;
trager[LinkName+ID]._y = appY;
trager[LinkName+ID].gotoAndStop(temp%10+1);
temp = Math.floor(temp/10);
ID++;
count++;
} while (temp != 0);
return true;
}
//在样式拖进场景的前提下调用此样式进行显示数字
function showMovicClipNumber(MCName:Object, number, appX, appY, scX, scY:Number, spc:Number):Boolean {
//MCName:要复制的影片剪辑名称,即是给样式起的名称
//number:要显示的数字
//appX,appY:显示数字的起始坐标
//scX,scY:分别表示影片的水平增量和垂直增量
//spc:相邻数字的间隔
var temp:Number = number;
var count:Number = 0;
var i:Number;
var parentMC:Object = this;
do {
MCName.duplicateMovieClip(MCName._name+ID, this.getNextHighestDepth());
for (i=ID-count; i<ID; i++) {
if (spc != undefine) {
this[MCName._name+i]._x += spc;
} else {
this[MCName._name+i]._x += this[MCName._name+i]._width;
}
}
if (scX != undefine) {
trager[LinkName+ID]._xscale = scX;
}
if (scY != undefine) {
trager[LinkName+ID]._yscale = scY;
}
this[MCName._name+ID]._x = appX;
this[MCName._name+ID]._y = appY;
this[MCName._name+ID].gotoAndStop(temp%10+1);
temp = Math.floor(temp/10);
ID++;
count++;
} while (temp != 0);
return true;
}
以上代码提供了两个函数,showLinkTypeNumber函数是直接从库中复制数字样式,showMovicClipNumber函数是要将数字样式拖进场景的前提下才可用。至于这两个函数的用法,在 程序里面的注释有说明,大家可以参照注释来对函数作调用。现在要来讲讲的是如何制作数字的样式。
其实这里讲的数字样式是指用来存放数字的图形的影片剪辑。那么数字样式应该如何制作呢?按照我上面的函数规定,数字样式的0~9十个数字是要求按这个顺序并且影片剪辑的每一帧放进一个数字的原则(即第一帧放进一个数字0,第二帧放进一个数字1……)来制作的。如下图:
当然你也可以不按照这个规律来制作(那就是要修改了我所给的函数结构-_-b)。
制作完样式之后,我们可以来测试一下:
为了测试一下两个函数是否都能够实现显示数字功能,我们为数字样式添加一个链接名称“type1”(步骤:右键库中的数字样式影片,选择链接,在弹出的菜单中钩选“为ActionScript导出”选项,然后在标示符中写入type1),并且把该数字样式拖进主场景外(为了不被显示出来原样式数字)。
将函数复制到主场景的第一帧,再新建一层,在这层的第一帧写上如下代码:
showLinkTypeNumber("type1", _root, 56, 100, 100,70,70,50);
showMovicClipNumber(typeMC, 40, 200, 200);
Ctrl+Enter测试一下,是不是如下图的效果呢?
希望这两个函数能够帮助到有这方面需要的朋友吧。
//利用影片复制的功能来显示数字
var ID:Number = 0;
//时间帧变量ID是代表了新数字影片的序号.
//在有链接名称的样式前提下直接从库中调用此样式显示数字
function showLinkTypeNumber(LinkName:String, trager:Object, number, appX, appY, scX, scY:Number, spc:Number):Boolean {
//参数说明
//LinkName:链接名称,即是给样式起的链接标识符
//trager:目标影片,指将数字复制到哪一个影片上
//number:要显示的数字
//appX,appY:显示数字的起始坐标
//scX,scY:分别表示影片的水平增量和垂直增量
//spc:相邻数字的间隔,如果不设置则间距为影片的宽度
var temp:Number = number;
var count:Number = 0;
var i:Number;
do {
trager.attachMovie(LinkName, LinkName+ID, trager.getNextHighestDepth());
for (i=ID-count; i<ID; i++) {
if (spc != undefine) {
trager[LinkName+i]._x += spc;
} else {
trager[LinkName+i]._x += trager[LinkName+i]._width;
}
}
if (scX != undefine) {
trager[LinkName+ID]._xscale = scX;
}
if (scY != undefine) {
trager[LinkName+ID]._yscale = scY;
}
trager[LinkName+ID]._x = appX;
trager[LinkName+ID]._y = appY;
trager[LinkName+ID].gotoAndStop(temp%10+1);
temp = Math.floor(temp/10);
ID++;
count++;
} while (temp != 0);
return true;
}
//在样式拖进场景的前提下调用此样式进行显示数字
function showMovicClipNumber(MCName:Object, number, appX, appY, scX, scY:Number, spc:Number):Boolean {
//MCName:要复制的影片剪辑名称,即是给样式起的名称
//number:要显示的数字
//appX,appY:显示数字的起始坐标
//scX,scY:分别表示影片的水平增量和垂直增量
//spc:相邻数字的间隔
var temp:Number = number;
var count:Number = 0;
var i:Number;
var parentMC:Object = this;
do {
MCName.duplicateMovieClip(MCName._name+ID, this.getNextHighestDepth());
for (i=ID-count; i<ID; i++) {
if (spc != undefine) {
this[MCName._name+i]._x += spc;
} else {
this[MCName._name+i]._x += this[MCName._name+i]._width;
}
}
if (scX != undefine) {
trager[LinkName+ID]._xscale = scX;
}
if (scY != undefine) {
trager[LinkName+ID]._yscale = scY;
}
this[MCName._name+ID]._x = appX;
this[MCName._name+ID]._y = appY;
this[MCName._name+ID].gotoAndStop(temp%10+1);
temp = Math.floor(temp/10);
ID++;
count++;
} while (temp != 0);
return true;
}
以上代码提供了两个函数,showLinkTypeNumber函数是直接从库中复制数字样式,showMovicClipNumber函数是要将数字样式拖进场景的前提下才可用。至于这两个函数的用法,在 程序里面的注释有说明,大家可以参照注释来对函数作调用。现在要来讲讲的是如何制作数字的样式。
其实这里讲的数字样式是指用来存放数字的图形的影片剪辑。那么数字样式应该如何制作呢?按照我上面的函数规定,数字样式的0~9十个数字是要求按这个顺序并且影片剪辑的每一帧放进一个数字的原则(即第一帧放进一个数字0,第二帧放进一个数字1……)来制作的。如下图:
![](http://space.flash8.net/space/attachments/2006/09/04/2006904_b12816e2bbd0690f054462aa408e0b4d.jpg)
当然你也可以不按照这个规律来制作(那就是要修改了我所给的函数结构-_-b)。
制作完样式之后,我们可以来测试一下:
为了测试一下两个函数是否都能够实现显示数字功能,我们为数字样式添加一个链接名称“type1”(步骤:右键库中的数字样式影片,选择链接,在弹出的菜单中钩选“为ActionScript导出”选项,然后在标示符中写入type1),并且把该数字样式拖进主场景外(为了不被显示出来原样式数字)。
将函数复制到主场景的第一帧,再新建一层,在这层的第一帧写上如下代码:
showLinkTypeNumber("type1", _root, 56, 100, 100,70,70,50);
showMovicClipNumber(typeMC, 40, 200, 200);
Ctrl+Enter测试一下,是不是如下图的效果呢?
![](http://space.flash8.net/space/attachments/2006/09/04/2006904_07ca69466dd0d9df413cd210d05fadc1.jpg)
希望这两个函数能够帮助到有这方面需要的朋友吧。