选择显示字体大小

摇奖机的制作方法

做了整整一上午,终于做好了,看看效果先:
 [全屏欣赏]

flash/swflash.cab#version=4,0,2,0 height=360 width=480 classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000>flashvars" value="">flash_ddvip/2004413153013807.swf">flash_ddvip/2004413153013807.swf">access" value="always">flash/index4//img_flash_ddvip/2004413153013807.swf" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash' type='application/x-shockwave-flash' width=480 height=360>img_flash_ddvip/2004413153013807.swf
这些天看到有不少朋友问摇奖机是如果制作的,我最近也考虑了一下,觉得原理不难,关键是有耐心,如果看了这个方法之后,我个人认为还是比较好理解的

转入正题:

先说说原理:主要是随机数的运用,就是先制作一个小球影片,然后在场景中,复制小球到一定数目,同时给每个小球附给一定的数字作为标志,来确定下面滚出来的是不是这个小球,从而根据你设置的条件来判断是不是中奖,小球当然是在一定的圆形平面范围内进行随机运动,不能超出范围,否则就没有真实感了,限定范围可以根据圆形的公式,让半径做随机变化就ok了,然后再判断当小球运动到出口的时候,就复制一个并让它运动出来,判断小球先前附给的数字确定中奖与否,明白这些就可以了,简单吧,下面说一下具体步骤:

1、新建文件,创建一个影片,在其中画一个小圆球;

screen.width-333)this.width=screen.width-333" border=0>

2、再创建一个影片剪辑,在其中画一个杆,将杆的中心定位在场景中心,在30桢处插入关键桢,选中第一桢,在属性面板中选动作、旋转选逆时针,数目为2。

screen.width-333)this.width=screen.width-333" border=0>

3、回到主场景,将上两步创建的两个影片都拖到场景中,其中小球的影片命名为ball,另外你也可以在影片中画一些摇奖机的外框,至于怎么画就不说了,因为我绘画也是超级菜鸟一个,哈哈。

screen.width-333)this.width=screen.width-333" border=0>

4、新建一层用于写as,这是最关键的一步,因为都是自己一边调试一边写的,所以用了几个小时的时间的写这些,不过明白原理以后,应该很快就能写出来,下面就是主要的as,已经做了比较详细的注释:

screen.width-333)this.width=screen.width-333" border=0>

_root.onload = function(){  //当加载的时候执行以下动作
 x0 = y0 = 200;
 i = 0;
 a = array();
 m = array();
 n = array();
 jiao = array();
 num = array();//以上主要是初始化一些变量以及定义一些数组,这在2004中是必须的
 }
 for(j = 0;j<30;j++){
 duplicatemovieclip(ball,"ball"+j,10+j);//复制30个小球
 _root["ball"+j].num[j] = j;//把复制的小球依次编号,为了以后的步骤验证是不是中奖
 mycolor = new color(_root["ball"+j]);//定义一个颜色对象
 mycolor.setrgb(random(0xffffff));//设置复制的小球的颜色是随机的
 }
_root.onenterframe = function(){//逐桢执行动作  
 r = random(96);//定义一随机变量
 if(i>360){i = 0;}//当旋转一周的时候又回到原始点
 x = r*math.cos(i*math.pi/180)+x0;
 y = r*math.sin(i*math.pi/180)+y0;//根据圆的公式得到的,目的就是为了使小球在一个圆周平面内随机运动
 i+=random(30);//角度随机自加
 _root.ball._x = x;
 _root.ball._y = y;//将开始的小球的坐标附随机值
 for(j = 0;j<30;j++){//以下是设置复制出来的小球的坐标值
jiao[j] = random(360);
a[j] = random(96);//给以前定义的数组附随机值
m[j] = a[j]*math.cos(jiao[j]*math.pi/180)+x0;
n[j] = a[j]*math.sin(jiao[j]*math.pi/180)+y0;//为了给复制的每个小球附随机值
_root["ball"+j]._x = m[j];
_root["ball"+j]._y = n[j];//分别给复制的小球附值
jiao[j]+=random(30);//每个小球的角度自加
if(_root["ball"+j]._x>=201&&_root["ball"+j]._x<=206&&_root["ball"+j]._y>=292&&_root["ball"+j]._y<=295){
 duplicatemovieclip(_root["ball"+j],"mc"+j,100+j);//当小球运动到规定的范围内,将这个小球再复制一个  
 }
 _root["mc"+j]._y+=3;//让复制的这个小球,落下来
 if(_root["mc"+j]._y>340){
_root["mc"+j]._y = 340;
_root["mc"+j]._x+=3;//当这个小球落到低部的时候,向右滚出
if(_root["mc"+j]._x>400){
 _root["mc"+j]._x = 400;//当规定位置,停止运动  
if(_root["ball"+j].num[j]==0_root["ball"+j].num[j]==10_root["ball"+j].num[j]==20)
 {_root.wenben.text = "中奖!"}  
else{_root.wenben.text = "谢谢参与";}//上面两句是为了确定小球是不是中奖,条件自己确定,我这里是根据前面设置的小球的数字来确定的  
_root["mc"+j].removemovieclip();//确定中奖或者没中奖以后,删除这个小球,继续判断
}
 }
}
 }
 //注意:上面的有些范围以及小球位置的判断是根据场景中实际小球位置情况来确定的,并不是绝对的,大家可以根据自己的情况加以修改

5、场景的定位,主要用到辅助线,和对齐对象的功能,这就根据自己的实际情况来进行,如果这些都不会,那我建议学学计算机基础先,哈哈 ,开玩笑……

6、大功告成,测试结果,看看自己能不能中奖,我运气不好,长这么大就没中过什么大奖,所以就不试了,希望大家都能中大奖 ^_^

另外,大家如果有什么好的建议或者想法,可以提出来,大家一起探讨,共同进步……

原文件:
点击浏览该文件   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons