Flash教程:模拟幸运号抽奖机
2008-05-09 11:21:00 来源:WEB开发网第二帧上代码:
stop();
//============= 初始区 ===========================
//------加点投影效果
importflash.filters.DropShadowFilter;
vard_filtersropShadowFilter=newDropShadowFilter(5,45,0x336633,80,8,8);
//------数组乱序
randomArray(num_array);
//------loop声音
loopMp3.start();
loopMp3.onSoundComplete=function(){
loopMp3.start();
};
/*
如输入119时:
total_num=119 |txtLong_num=3 |num_array=[001,....]
randomNum停止工作时显示未位上的数字相同的一组文本框(0~3) | C_array 用于删除已抽的号码函数 |
getNo_array 存贮获取的当前一组文本中的数字 |jieguo_mcY0 弹出的显示已抽号的窗口的初始y坐标
*/
varrandomNum:Number,C_array:Array=[],getNo_array:Array=[],jieguo_mcY0:Number=jieguo_mc._y;
varkO:Boolean=true;
total_txt.text="参与选号总数是: "+total_num;
//=====================================================
//============= 函数区 ===============================
//------ 根据第一帧上输入的数值复制文本框个数与各位数上的数量
this.createEmptyMovieClip("main",0);
body();
functionbody(){
for(vari:Number=0;i<txtLong_num;i++){
for(varj:Number=0;j<4;j++){
main["m"+i+j]=main.attachMovie("cell","m"+i+j,main.getNextHighestDepth(),{_x:i*80,_y:-j*85});
main["m"+i+j].v=true;
main["m"+i+j].filters=[d_filters];
//main["m"+i+j].num 决定再次升到顶端时其中的数值从数组num_array中进行取值的位置 网页教学网
main["m"+i+j].num=j;
main["m"+i+j].t.text=num_array[j].toString().substr(i,1);
Rolling(main["m"+i+j]);
}
}
}
//------- 文本框居中排列
PosiMain();
functionPosiMain(){
main._x=Stage.width/2-main._width/2;
main._y=Stage.height/2-40;
}
//------- 滚动函数
functionRolling(target:MovieClip){
target.onEnterFrame=function(){
if(this.v){
this._y+=40;
if(this._y>=80){
this.num+=4;
if(this.num>total_num){
this.num=Number(this._name.substr(2,1));
}
this.t.text=num_array[Number(this.num)].toString().substr(this._name.substr(1,1),1);
this._y=-255;
}
}else{
deleCell();
}
};
}
main.setMask(mask_mc);
//------- 停止滚动和显示结果区
functiondeleCell(){
for(variinmain){
// 如果文本框未位上的数字与停止按钮给出的数字不同时就被删除
if(main._name.substr(2,1)!=randomNum){
main.t.text="";
main._visible=false;
main.removeMovieClip();
deletemain.onEnterFrame;
}else{
// 如果文本框未位上的数字与停止按钮给出的数字相同时就作为显示对象
if(main._y!=0){
main._y+=(0-main._y)/10;
}else{
//--- 删除num_array中已抽的号码
C_array.push(main);
if(C_array.length==txtLong_num){
varn=main.num;
getNo_array.push(num_array[n]);
jieguo_mc.t.text="";
for(varIndex:Number=(getNo_array.length-1);Index>=0;Index--){
jieguo_mc.t.text+="第"+(Index+1)+"次抽取的号码是:"+getNo_array[Index]+"
";
}
vartw1=newmx.transitions.Tween(jieguo_mc,’_y’,mx.transitions.easing.Back.easeOut,jieguo_mcY0,Stage.height-jieguo_mc._height,1,true);
num_array.splice(n,1);
deletemain.onEnterFrame;
}
}
}
}
}
//===================================================
//============= 按钮与声音区 ========================
stop_mc.t.text="停止";
reSet_mc.t.text="再选";
//控制按钮切换变量
stop_mc.onOff=true;
reSet_mc.onOff=false;
stop_mc.onRollOver=function(){
_sound();
this.play();
};
stop_mc.onPress=function(){
if(this.onOff){
// randomNum决定哪组文本框被保留或被删除
randomNum=random(4);
loopMp3.stop();
C_array=[];
for(variinmain){
//main.v决定执行停止滚动和显示结果区
main.v=false;
}
reSet_mc.onOff=true;
this.onOff=false;
kO=false;
}
};
stop_mc.onRollOut=function(){
this.play();
};
reSet_mc.onRollOver=function(){
_sound();
this.play();
};
reSet_mc.onPress=function(){
if(this.onOff){
loopMp3.start();
for(variinmain){
deletemain.onEnterFrame;
main.removeMovieClip();
}
body();
stop_mc.onOff=true;
this.onOff=false;
kO=true;
}
};
reSet_mc.onRollOut=function(){
this.play();
};
jieguo_mc.Press_mc.onRollOver=function(){
_sound();
};
jieguo_mc.Press_mc.onPress=function(){
vartw2=newmx.transitions.Tween(jieguo_mc,’_y’,mx.transitions.easing.Back.easeOut,jieguo_mc._y,jieguo_mcY0,1,true);
};
//----- 回车键控制
varkeyObj:Object=newObject();
keyObj.onKeyDown=function(){
if(Key.getCode()==Key.ENTER){
switch(kO){
casetrue:
// randomNum决定哪组文本框被保留或被删除
randomNum=random(4);
loopMp3.stop();
C_array=[];
for(variinmain){
//main.v决定执行停止滚动和显示结果区
main.v=false;
}
reSet_mc.onOff=true;
stop_mc.onOff=false;
kO=false;
break;
casefalse:
loopMp3.start();
for(variinmain){
deletemain.onEnterFrame;
main.removeMovieClip();
}
body();
stop_mc.onOff=true;
reSet_mc.onOff=false;
kO=true;
break;
}
}
};
Key.addListener(keyObj);
//===========================================
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接