银河选秀FLASH的源代码(主场景类文件)
广告时间
|
|
||||||||||
用AS3真切的体会到flash AS3带给我们的代码与美工分离的好处,这个小程序只用了一个下午的辅导课的时间,我在一个教室写代码,同事在另外一间教室画ps,下课的时候交流一下想法,下午下班的时候把我的类名一填,晚上就开始使用了,当然,只考虑效果的实现,其他方面考虑的还很多,也许有时候的时候再会想到弄下吧!
公布源码如下,有兴趣的朋友一起研究一下
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.*;
import flash.utils.Timer;
public class pickStu extends MovieClip {
var siteSprite:Sprite;
var arrSite:Array=new Array;
var btnPick:BtnPush;//开始按钮
var btnEndPick:BtnEndPush;//结束按钮
var lastPick:int=-1;//上一次选择的电脑索引号
var timers:Timer;
var jg:int;
const ROW:int=6;
const COL:int=8;
function pickStu() {
siteSprite=new Sprite();
//生成座位表
for (var i:int=0; i < ROW; i++) {
for (var j:int=0; j < COL; j++) {
var site:Computer=new Computer;
siteSprite.addChild(site);
if (j >= COL/2) {
site.x=42 * j + 55;
site.y=53 * i;
} else {
site.x=42 * j;
site.y=53 * i;
}
arrSite.push(site);
}
}
//添加座位表到场景
addChild(siteSprite);
siteSprite.x=205,siteSprite.y=96;
//添加开始按钮
btnPick=new BtnPush ;
addChild(btnPick);
btnPick.x=344,btnPick.y=542;
btnPick.addEventListener(MouseEvent.CLICK,startPickHandle);
//添加结束按钮
btnEndPick=new BtnEndPush ;
addChild(btnEndPick);
btnEndPick.x=453,btnEndPick.y=542;
}
//侦听按钮,进入选秀,初始化加速时间,并开始加速
private function startPickHandle(e:MouseEvent):void {
jg=1000;
btnPick.removeEventListener(MouseEvent.CLICK,startPickHandle);
timers=new Timer(jg,1);
startPickTime();
//trace("按下开始按键");
}
//开始选秀,有个加速效果
private function startPickTime():void {
timers.addEventListener(TimerEvent.TIMER,runPickHandle);
timers.addEventListener(TimerEvent.TIMER_COMPLETE,nextRunHandle);
timers.start();
jg-= 100;
}
//变更所选电脑
private function runPickHandle(e:TimerEvent):void {
if (lastPick != -1) {
arrSite[lastPick].gotoAndStop(1);
}
var flag:int=int(Math.random() * arrSite.length);
arrSite[flag].gotoAndStop(2);
lastPick=flag;
}
//结束加速
private function nextRunHandle(e:TimerEvent):void {
if (jg > 100) {
timers.reset();
timers.delay=jg;
startPickTime();
} else {
timers.reset();
timers.delay=50;
timers.repeatCount=0;
timers.addEventListener(TimerEvent.TIMER,runPickHandle);
timers.start();
btnEndPick.addEventListener(MouseEvent.CLICK,endPickHandle);
}
}
/*
结束选秀
*/
//处理结束按钮
private function endPickHandle(e:MouseEvent):void {
jg=50;
timers.stop();
btnEndPick.removeEventListener(MouseEvent.CLICK,endPickHandle);
timers=new Timer(jg,1);
endPickTime();
//trace("按下结束按钮");
}
//结束时的减速效果
private function endPickTime():void {
timers.reset();
timers.delay=jg,timers.repeatCount=1;
timers.addEventListener(TimerEvent.TIMER,runPickHandle);
timers.addEventListener(TimerEvent.TIMER_COMPLETE,nextEndRunHandle);
timers.start();
jg+= 100;
}
private function nextEndRunHandle(e:TimerEvent):void {
if (jg < 1000) {
endPickTime();
} else {
timers.stop();
btnPick.addEventListener(MouseEvent.CLICK,startPickHandle);
//trace("选好了!");
}
}
}
}



十一月 1st, 2008 at 14:29
收藏了~~
十二月 10th, 2008 at 12:57
我的选秀也落伍了 呵呵额~~~