本文通过百分比来控制显示对象的进度条,在实际开发中,经常遇到下载进度条、播放进度条,以及游戏对角色的生命值显示或时间进度等,都是通过百分比来实现;本文通过百分来来控制图片的透明度alpha值,以及通过一个进度条关联百分比来显示图片的透明情况,以及图片的放大缩小均以百分比来控制,另外则捎带的简单实现图片拖拽控制功能。
百分比公式 “当前数据÷总数据×100%=当前百分比” 和 “ 总数据×当前百分比=当前数据”,在ActionScript3.0 编程中 当前数据÷总数据×100=当前百分比 和 总数据×当前百分比÷100=当前数据 在此处百分号省略,因为将百分比赋值给label或动态文本,将 当前百分比 的值后面加一个字符“%”即可。
示例:如总路程为1000米,当前走了200米,要获得当前行走路程占总路程的百分比?那么就是 200/1000*100=20这是在程序中的写法,在赋值给label或动态文本时将20后面加一个字符“%”,即输出“20%”。而实际算法是“200÷1000×100%=20%”得到20%;反过来获取当前行程即1000*20/100=200,当前行程为200米,在实际算法中是1000×20%=200(米);然后很多时候需要取整,则用四舍五入方式来取整,在程序编写中则是Math.round(需要取整的数值),如数值25.356,则是Math.round(25.356)为25。
通过上面公式和示例,在程序编写过程中将以各种事件响应、触发公式的算法,从而获得公式的结果,把程序实际场景中的数值参数传入公式,套入公式进行算取 。
var seebar:MovieClip=seebar;
var seebarOutline:MovieClip=seebarOutline;
var MyUIlaoder:UILoader=Uload;
MyUIlaoder.source="DSCF8463_04.png";//指定图片
var carryNum:Number=10;//十进制 可自定随意设定数值
var Num3:Number=Math.round((Number)(seebar.width)/(Number)(seebarOutline.width)*100);
//var Num4:Number;
![]()
//Copyright (C) 遺昕 | weisim3.com 01,05,2011
//ActionScript3.0 百分比控制对象
![]()
//////////////////MyUIlaoder-透明度alpha控制///////////////////////////
MyUIlaoder.alpha=(1*Num3)/100;
view_txt.text=Num3.toString()+"%";
view_txt.autoSize=TextFieldAutoSize.LEFT;
function high(e:Event):void {
![]()
//Num3=6/12*100;
//(Number)( Anum_txt.text)*((Number)(Bnum_txt.text)/100);
//12000/800000×100%
if (Num3<100) {
seebar.width+=carryNum;
![]()
}
![]()
Num3=Math.round((Number)(seebar.width)/(Number)(seebarOutline.width)*100);
if (seebar.width>seebarOutline.width) {
seebar.width=seebarOutline.width;//seebar.width>seebarOutline.width
Num3=Math.round((Number)(seebar.width)/(Number)(seebarOutline.width)*100);
}
MyUIlaoder.alpha=(1*Num3)/100;//(Number)(MyUIlaoder.alpha)
view_txt.text=Num3.toString()+"%";
trace(Num3.toString()+"%");//百分比
trace(MyUIlaoder.alpha);
//trace(Num4.toString());
![]()
}
Get_btn.addEventListener(MouseEvent.CLICK,high);
![]()
function low(e:Event):void {
if (Num3>=-1) {
seebar.width-=carryNum;
}
![]()
Num3=Math.round((Number)(seebar.width)/(Number)(seebarOutline.width)*100);
if (seebar.width<carryNum) {
seebar.width=0;
Num3=Math.round((Number)(seebar.width)/(Number)(seebarOutline.width)*100);
}
MyUIlaoder.alpha=(1*Num3)/100;
view_txt.text=Num3.toString()+"%";
trace(Num3.toString()+"%");
trace(MyUIlaoder.alpha);
}
Get_low.addEventListener(MouseEvent.CLICK,low);
![]()
/////////////////////MyUIlaoder-缩放控制////////////////////////////////////////
var myScaleX:Number=MyUIlaoder.scaleX;
var myscaleY:Number=MyUIlaoder.scaleY;
var MyUIlaoderX=MyUIlaoder.x;
var MyUIlaoderY=MyUIlaoder.y;
![]()
var dragX:Number=MyUIlaoder.width;
var dragY:Number=MyUIlaoder.height;
![]()
var myZooNumber:Number;
zooTitle_txt.autoSize=TextFieldAutoSize.LEFT;
zooTitle_txt.text="----";
var ZooInNum:Number=500;//放大最大值500%
![]()
zooIn_mc.addEventListener(MouseEvent.CLICK,zooIn);
function zooIn(e:Event):void {
![]()
//if (myZooNumber
MyUIlaoder.scaleX+=0.1;
MyUIlaoder.scaleY+=0.1;
![]()
//}
myZooNumber=(MyUIlaoder.scaleX/myScaleX*100);
if (myZooNumber>=ZooInNum) {
MyUIlaoder.scaleX=myScaleX*500/100;
MyUIlaoder.scaleY=myScaleX*500/100;//.scaleY;
myZooNumber=(MyUIlaoder.scaleX/myScaleX*100);
}
zooTitle_txt.text=Math.round(myZooNumber).toString()+"%";
trace(MyUIlaoder.width+"--"+MyUIlaoder.height);
}
![]()
var ZooOutNum:Number=100;//缩小最小值100%
zooOut_mc.addEventListener(MouseEvent.CLICK,zooOut);
function zooOut(e:Event):void {
if (myZooNumber>ZooOutNum) {
MyUIlaoder.scaleX-=0.1;
MyUIlaoder.scaleY-=0.1;
![]()
trace(MyUIlaoder.width+"--"+MyUIlaoder.height);
}
myZooNumber=(MyUIlaoder.scaleX/myScaleX*100);
if (myZooNumber<=ZooOutNum) {
MyUIlaoder.scaleX=myScaleX*ZooOutNum/100;
MyUIlaoder.scaleY=myscaleY*ZooOutNum/100;//.scaleY;
myZooNumber=(MyUIlaoder.scaleX/myScaleX*100);
![]()
}
![]()
if (myZooNumber==ZooOutNum) {//复原位置
MyUIlaoder.x=MyUIlaoderX;
MyUIlaoder.y=MyUIlaoderY;
myZooNumber=(MyUIlaoder.scaleX/myScaleX*100);
}
zooTitle_txt.text=Math.round(myZooNumber).toString()+"%";
}
![]()
//////////////////////////MyUIlaoder-推拽///////////////////////////////////
![]()
var rect=new Rectangle(- dragX/4,- dragY/4,dragX/2,dragY/2);//拖拽区域制定
![]()
MyUIlaoder.addEventListener(MouseEvent.MOUSE_DOWN, startDrags);
function startDrags(event:MouseEvent):void {
//当MyUIlaoder的缩放值大于100%时才可以实现推拽
if (myZooNumber>ZooOutNum) {
MyUIlaoder.startDrag(false,rect);
}
![]()
}
![]()
MyUIlaoder.addEventListener(MouseEvent.MOUSE_OUT, stopDrags);
MyUIlaoder.addEventListener(MouseEvent.MOUSE_UP, stopDrags);
function stopDrags(event:MouseEvent):void {
//当MyUIlaoder的缩放值大于100%时才可以实现推拽
if (myZooNumber>ZooOutNum) {
![]()
MyUIlaoder.stopDrag();
}
}