带来一篇Flash教程:摹拟侥幸号抽奖机-Flash实例教程
AdobeFlashProfessionalCS5.5软件可以提供行业领先、用于制作具有表现力的交互式内容的授权环境。列位看官记得要回帖哦!教授教养中常常要用到抽号,称号任意取的,也叫“侥幸号”吧。做了一个,不是很成熟,有那末点效果罢了,仅供老手参考(程序中使用了一些经常使用的基本语法),举一反三罢了。
第一帧上代码:
/*sxl001http://sxl001.07dns.comqq:285510591*/
//=============初始区================================
stop();
//-----全屏与隐菜单区
fscommand("fullscreen",true);
fscommand("showmenu",false);
//-----变量区
/*total_num纪录输出总数|txtLong_num输出字符长度|num_array纪录输出的一切数
如输出119时:
total_num=119|txtLong_num=3|num_array=
*/
vartotal_num:Number=0;
vartxtLong_num:Number=0;
varnum_array:Array=[];
//=======================================================
//=============按钮与声响区============================
varstartMp3:Sound=newSound();
startMp3.attachSound("start");
startMp3.start();
varloopMp3:Sound=newSound();
loopMp3.attachSound("loop");
startMp3.onSoundComplete=function(){
startMp3.start();
};
start_mc.onRollOver=function(){
_sound();
this.play();
};
start_mc.onPress=function(){
Submit();
};
start_mc.onRollOut=function(){
this.play();
};
quit_btn.onRollOver=function(){
_sound();
};
quit_btn.onPress=function(){
fscommand("quit",true);
};
//-----文本区
Selection.setFocus(input_txt);
input_txt.maxChars=4;//把持4位(最多9999人)充足用了
input_txt.restrict="0-9";
input_txt.border=true;
input_txt.borderColor=0xFF00FF;
//==========================================================
//=============函数区=====================================
//-----提交
functionSubmit(){
if(input_txt.text!=""&&input_txt.text.substr(0,1)!="0"){
total_num=Number(input_txt.text);
txtLong_num=input_txt.text.length;
Distribution(input_txt.text);
startMp3.stop();
play();
}
Key.removeListener(keyListener);
}
//--------num_array存贮从0到最年夜数值
functionDistribution(str:String){
varlong:Number=str.length;
varmaxNum:Number=Number(str);
for(vari:Number=1;i<=maxNum;i++){
varl:Number=String(i).length;
varzha:Number=long-l;
switch(zha){
case0:
num_array.push(i);
break;
case1:
num_array.push("0"+i);
break;
case2:
num_array.push("00"+i);
break;
case3:
num_array.push("000"+i);
break;
}
}
}
//-----数组乱序
functionrandomArray(Target_array:Array){
Target_array.sort(function(){
returnMath.round(Math.random())?1:-1;
});
}
//-----按钮声响
function_sound(){
varbtnS:Sound=newSound();
btnS.attachSound("btnSound");
btnS.start();
}
//-----回车键提交
varkeyListener:Object=newObject();
keyListener.onKeyDown=function(){
if(Key.getCode()=="13"){
if(input_txt.text!=""&&input_txt.text.substr(0,1)!="0"){
total_num=Number(input_txt.text);
txtLong_num=input_txt.text.length;
Distribution(input_txt.text);
startMp3.stop();
_root.play();
Key.removeListener(keyListener);
}
}
};
Key.addListener(keyListener);
//================================================第二帧上代码:
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=
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=;
//main["m"+i+j].num决意再次升到顶端时个中的数值从数组num_array中举行取值的地位
main["m"+i+j].num=j;
main["m"+i+j].t.text=num_array.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.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);
jieguo_mc.t.text="";
for(varIndex:Number=(getNo_array.length-1);Index>=0;Index--){
jieguo_mc.t.text+="第"+(Index+1)+"次抽取的号码是:"+getNo_array+"
";
}
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插件的前提下,无法正常显示广告效果。根据调查显示,有3%的互联网用户没有安装shockwave Flash。虽然比例不大,但不能因为这样一个简单的原因而拒绝这些用户。 FLASH动画在如今的很多网站中都比较常见,其所独有的视觉效果和感染力成为各行各业宣传企业形象、推广产品的最佳平台。 作为奖赏,你可以使用关键祯动画支持和tweening- 两个最主要的节省时间的方式。本质上,关键祯是动画中显著事件发生的位置。 都着重在优点方面,请尽量答的详细、深入一些,谢谢!拿了我全部的爱问分了已经 缺点方面~有些技术不能实现,不过FLASH技术在发展在进步,相信在以后FLASH可以取代,大部分的视频编辑软件,视频制作软件。 Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。 它包含了下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言。
页:
[1]