Flash CS制作幸运大抽奖gif动画特效教程

所属分类: 媒体动画 / Flash教程 阅读数: 46
收藏 0 赞 0 分享
好久未来这了,刚好这两天没什么事,又做了一个抽奖的小东东玩玩,只供菜鸟们参考,老鸟们见笑了。


照惯例上主要代码:


复制代码
代码如下:
stop();
/*
@sxl
@QQ:285510591
@http://sxl001.129hb.com
@2009.12.20
*/
System.useCodePage =true;
// title_mc:标题 | gong_mc:显示中奖 | msg_mc:显示所有中奖和未中奖情况
title_mc.cacheAsBitmap=true;
gong_mc.cacheAsBitmap=true;
gong_mc.y=1000;
msg_mc.cacheAsBitmap=true;
msg_mc.x=-1000;
// 下列是声音效果数据
var mousw_over_sound:Over=new Over(),rect_up_sound:Move=new Move(),rect_down_soundown=new Down(),_win:Win=new Win();
// gong_array:奖品名 | Balls:各个号码 | hit_ball_array:已抽号码
var gong_array:Array =[],Balls:Array =[],hit_ball_array:Array =[],move_gong_mc:Boolean=true,move_msg_mc:Boolean;
// 以下是内部设置奖品
var data_str:String ="环保手提袋|罗技|电磁炉|显示器|移动硬盘|掌上游戏机|手机|3G手机|九阳豆浆机|电动剃须刀|雅顿香水|数码相机|闪存盘|离子电视|消毒柜|松下洗衣机|电磁炉|电饭煲|电压力锅|光波炉|搅拌机|榨汁机|电茶壶|咖啡机|自动烹饪锅|紫砂煲|空调|吸油烟机|取暖器|加湿器";
gong_array =data_str.split("|");
randomArray(gong_array);
/* 以下注释部分是从外部文本中导入奖品数据
var loaderNum:URLLoader = new URLLoader();
configureListenersNum(loaderNum);
var urlNum:String ="data/奖品.txt";
var requestNum:URLRequest=new URLRequest(urlNum);
loaderNum.load(requestNum);
function configureListenersNum(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHNum);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
function completeHNum(event:Event):void {
gong_array =event.target.data.split("|");
randomArray(gong_array);
event.target.removeEventListener(Event.COMPLETE, completeHNum);
event.target.removeEventListener(Event.COMPLETE, ioErrorHandler);
}
function ioErrorHandler(event:IOErrorEvent):void {
dele_balls_seleabled();
chakan_mc.buttonMode =false;
chakan_mc.removeEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
chakan_mc.removeEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
chakan_mc.removeEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
gong_mc._txt.text="请检查数据";
gong_mc.Ball._txt.text="-_-";
gong_mc.addEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
gong_mc.close_btn.enabled=false;
gong_mc.close_btn.removeEventListener(MouseEvent.MOUSE_DOWN,onCloseShowGong);
event.target.removeEventListener(Event.COMPLETE, completeHNum);
event.target.removeEventListener(Event.COMPLETE, ioErrorHandler);
}
*/
for (var i:uint =0; i<30; i++) {
this["Ball" + i].cacheAsBitmap=true;
this["Ball" + i].gotoAndStop("one");
Balls.push(this["Ball" + i]);
msg_mc["m" + i].ball_mc.gotoAndStop("one");
if (i<9) {
this["Ball"+i]._txt.text="0"+uint(i+1);
msg_mc["m"+i].ball_mc._txt.text="0"+uint(i+1);
} else {
this["Ball"+i]._txt.text=""+uint(i+1);
msg_mc["m"+i].ball_mc._txt.text=""+uint(i+1);
}
msg_mc["m"+i].t.text="等 待 抽 奖";
this["Ball"+i].i=i;
this["Ball"+i].buttonMode =true;
this["Ball"+i].mouseChildren=false;
this["Ball" + i].addEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
this["Ball" + i].addEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
this["Ball" + i].addEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
//......
}
chakan_mc.buttonMode =true;
chakan_mc.mouseChildren=false;
chakan_mc.addEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
chakan_mc.addEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
chakan_mc.addEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
function onMouse_Click(sxl:MouseEvent) {
var target:MovieClip =sxl.currentTarget as MovieClip;
var target_name:String =target.name.substr(0,1);
switch (sxl.type) {
case "mouseOver" :
mousw_over_sound.play();
switch (target_name) {
case "B" :
getBitmapFilter(target);
break;
case "c" :
setTxtColor(target.t,0xFFFFFF);
break;
}
break;
case "mouseOut" :
switch (target_name) {
case "B" :
target.filters =null;
break;
case "c" :
setTxtColor(target.t,0xFFFF00);
break;
}
break;
case "mouseDown" :
switch (target_name) {
case "B" :
dele_balls_seleabled();
target.removeEventListener(MouseEvent.CLICK ,onMouse_Click);
target.gotoAndStop("two");
setTxtColor(target._txt);
var index:String =target.i;
hit_ball_array.push(target);
var str:uint =uint(target.name.substr(4));
if (str<9) {
gong_mc.Ball._txt.text="0"+uint(str+1);
} else {
gong_mc.Ball._txt.text=""+uint(str+1);
}

gong_mc._txt.text=gong_array[index];
gong_mc.addEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
rect_up_sound.play();

msg_mc["m" + index].ball_mc.play();
msg_mc["m"+index].t.text=gong_array[index];
setTxtColor(msg_mc["m"+index].t,0xffff00);
setTxtColor(msg_mc["m" + index].ball_mc._txt);
break;
case "c" :
target.t.text="移开中奖结果";
if (Math.abs(gong_mc.y-300)<10) {
move_gong_mc=false;
gong_mc.addEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
}
move_msg_mc=!move_msg_mc;
msg_mc.addEventListener(Event.ENTER_FRAME,show_msg_mc);
rect_up_sound.play();
break;
}
break;
}
}
//
function show_msg_mc(sxl:Event) {
if (move_msg_mc) {
var dis_up:Number =(354-sxl.target.x)/5;
sxl.target.x+=dis_up;
if (Math.abs(dis_up)<1) {
sxl.target.x=354;
sxl.target.removeEventListener(Event.ENTER_FRAME,show_msg_mc);
}
} else {
var dis_down:Number =(1800-sxl.target.x)/5;
sxl.target.x+=dis_down;
if (Math.abs(dis_down)<10) {
chakan_mc.t.text="查看中奖结果";
sxl.target.x=-1000;
sxl.target.removeEventListener(Event.ENTER_FRAME,show_msg_mc);
}
}
}
// 删除所有数字按钮功能
function dele_balls_seleabled() {
for (var i:uint =0; i<Balls.length; i++) {
var A:MovieClip =Balls;
A.buttonMode =false;
A.removeEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
A.removeEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
A.removeEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
}
}
// 启用可用数字按钮功能
function show_balls_seleabled(A_arr:Array,B_arr:Array) {
var A_array:Array=A_arr,B_array:Array=B_arr;
for (var i:uint =0; i<A_array.length; i++) {
var A:MovieClip =A_array;
A.buttonMode =true;
A.mouseChildren=false;
A.addEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
A.addEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
A.addEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
}
for (var j:uint =0; j<B_array.length; j++) {
var B:MovieClip =B_array[j];
B.filters =null;
B.buttonMode =false;
B.removeEventListener(MouseEvent.MOUSE_OVER ,onMouse_Click);
B.removeEventListener(MouseEvent.MOUSE_DOWN ,onMouse_Click);
B.removeEventListener(MouseEvent.MOUSE_OUT ,onMouse_Click);
}
}
gong_mc.close_btn.addEventListener(MouseEvent.MOUSE_DOWN,onCloseShowGong);
function onCloseShowGong(sxl:MouseEvent) {
rect_down_sound.play();
gong_mc.addEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
}
function move_gong_mc_rect(sxl:Event) {
if (move_gong_mc) {
var dis_up:Number =(300-sxl.target.y)/5;
sxl.target.y+=dis_up;
if (Math.abs(dis_up)<1) {
_win.play();
sxl.target.gold.play();
sxl.target.y=300;
sxl.target.removeEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
move_gong_mc=false;
}
} else {
var dis_down:Number =(1000-sxl.target.y)/5;
sxl.target.y+=dis_down;
if (Math.abs(dis_down)<10) {
sxl.target.y=1000;
sxl.target.removeEventListener(Event.ENTER_FRAME,move_gong_mc_rect);
move_gong_mc=true;
show_balls_seleabled(Balls,hit_ball_array);
}
}
}
function randomArray(Target_array:Array):void {
Target_array.sort(function () {
return Math.round(Math.random()) ? 1 : -1;
});
}
function setTxtColor(_txt:TextField,color:uint=0x666666) {
var my_TextFormat:TextFormat =new TextFormat();
my_TextFormat.color =color;
_txt.defaultTextFormat = my_TextFormat;
_txt.setTextFormat(my_TextFormat);
}
//... 投影
function getBitmapFilter(_mc:MovieClip) {
var color:Number = 0x000000;
var angle:Number = 45;
var alpha:Number = 0.8;
var blurX:Number = 8;
var blurY:Number = 8;
var distance:Number = 15;
var strength:Number = 0.65;
var inner:Boolean = false;
var knockout:Boolean = false;
var quality:Number = BitmapFilterQuality.HIGH;
var myDropShadowFilterropShadowFilter= new DropShadowFilter(distance,angle,color,alpha,blurX,blurY,strength,quality,inner,knockout);
_mc.filters =[myDropShadowFilter];
}

以上就是Flash CS制作幸运大抽奖gif动画特效教程,希望大家喜欢!
更多精彩内容其他人还在看

Flash cs3绘制人物高级行走动画教程

本教程向大家介绍Flash cs3绘制人物高级行走动画效果,教程难度不是很大,绘制方法及过程介绍的也非常详细,教程很实用,转发过来,希望大家喜欢
收藏 0 赞 0 分享

Flash CS4来制作漂亮的气泡动画教程

本教程向脚本之家的朋友介绍用Flash CS4来制作漂亮的气泡动画,制作出来气泡真的很好看,制作效果是采用代码形式实现,觉得很不错,转发过来,感兴趣的朋友可以一起来学习
收藏 0 赞 0 分享

flash基础教程:帧、关键帧、空白帧概念及区别介绍

动画的产生是帧来实现的,那什么是帧?帧、关键帧和空白帧之间又有什么区别?本文就为大家介绍一下三者之间的关系
收藏 0 赞 0 分享

Flash教程:动画背景的绘制方法之透视篇(给新手)

Flash动画在网络上的广泛传播,已经成为上网一族喜闻乐见的一种艺术形式。动画背景的绘制方法有很多,也有很多表现方法。这里将结合透视学的基础知识向大家简单的介绍一下动画背景的绘制。
收藏 0 赞 0 分享

Flash AS入门教程:Flash AS3.0制作有年份有日期的时钟

本教程是向大家介绍利用Flash AS3.0制作有年份有日期的时钟,虽然制作时钟老套了点,但它确可以较全面地应用到时间日期和间隔等知识,仍不失为较好的入门练习,转发给大家,希望对大家有所帮助
收藏 0 赞 0 分享

Flash相册制作大师具体该如何使用 Flash相册制作大师使用教程

在本文中我们将会看到的是Flash相册制作大师的具体使用的方法
收藏 0 赞 0 分享

flash基础教程:混色器面板图文介绍

混色器面板是Flash中用于色彩处理的一个重要面板,熟练地使用该面板,可以帮助用户快速地完成色彩的填充,编辑出色彩丰富的图形。本教程为大家详细介绍一下混色器面板,希望对大家有所帮助
收藏 0 赞 0 分享

25个绝对让你应接不暇的Flash网站创意

在Web设计过程中,运用成熟的Flash技术可以把你任意想到的idea表现到产品页面中。这里为你整理发现了25个绝对让你应接不暇的 Flash网站创意,更好地体现网站的互动应用,同时可以让你大饱眼福,一起来欣赏吧
收藏 0 赞 0 分享

教你用Flash制作非常酷的二进制时钟动画

今天在这个教程中我们将学习用Flash做一个不同寻常的,但非常酷的时钟:一个二进制时钟,中间用到了代码,但介绍地很详细,相信很值得大家学习
收藏 0 赞 0 分享

Flash动画特效制作技巧:制作超酷的文字炸开动画效果

本教程向大家介绍Flash动画特效制作技巧,本实例是制作文字炸开的动画效果,制作效果非常酷,制作过程也比较简单,喜欢的朋友可以过来学习一下这种制作方法
收藏 0 赞 0 分享
查看更多