关于邮件分拣的模拟设计
2014-07-20吴振华
吴振华
(赤峰学院 物理与电子信息工程学院, 内蒙古 赤峰 024000)
关于邮件分拣的模拟设计
吴振华
(赤峰学院 物理与电子信息工程学院, 内蒙古 赤峰 024000)
邮件分拣在 EDA 实验中作为数控式实验的内容,其程序设计有其鲜明的专业性、实用性和独特性.在对学生开放该实验前,笔者对该实验所用的 FLASH 进行了模拟设计,以便学生更加直观地了解和认识该实验并针对模拟过程用 EDA 进行程序设计.
邮件;分拣;模拟;设计
1 素材准备
1、将邮件分为邮件 A(maila_mc)、邮件 B(mailb_mc)、邮件 C(mailc_mc)、邮编不规范部分(maild_mc)和尺寸不规范部分(maile_mc)等.
2、准备检测指示灯(detectLnght)和邮件进入邮箱指示灯(lnghtA.lnghtB.lnghtC.lnghtD.lnghtE).
3、邮件检测启动按钮和停止按钮.
邮件分拣系统的模拟演示最终界面组合图
2 程序设计要求
1、邮件进入分拣流水线后经检测属哪一类后,送到相应的邮件容器里.
2、根据信号功能表进行程序设计,从演示界面中我们看到一个“开始”按钮.按下“开始”按钮后程序才开始工作,显示“停止”按钮并隐藏“开始”按钮,按下“停止”按钮后终止程序运行并再次显示“开始”按钮.
3、程序运行后即循环工作,演示界面自动随机流出邮件,送流水线检测.
4、当邮件经过邮件检测装置时,将检测出该邮件的类型,并发出相应的信号,程序根据检测装置发出的信号,也发出命令,打开相应的邮件箱接收该邮件.
5、按下“停止”按钮,邮件分拣工作终止.
3 程序设计
//定义初始状态
var vy:int=1.3;
var vx:int=1.3;
detectLnght.visible=false;
lnghtA.visible=false;
lnghtB.visible=false;
lnghtC.visible=false;
lnghtD.visible=false;
lnghtE.visible=false;
maila_mc.visible=false;
mailb_mc.visible=false;
mailc_mc.visible=false;
maild_mc.visible=false;
maile_mc.visible=false;
stop_btn.visible=false;
random_btn.visible=true;
//开始按钮的事件侦听器
random_btn.addEventListener(MouseEvent.CLICK,randomF);
function randomF(e){
//为防止调用邮件自定义函数出现 13秒的延时,加一次调用
var timer1:Timer=new Timer(3,1);
timer1.addEventListener(TimerEvent.TIMER,timerF1);
timer1.start();
function timerF1(e:TimerEvent){
var k:int=Math.floor(Math.random()*5+1);
switch(k){
case 1:
mail1();
break;
case 2:
mail2();
break;
case 3:
mail3();
break;
case 4:
mail4();
break;
case 5:
mail5();
break;
}}
init();//调用邮件自定义函数
}
//邮件自定义函数
function init(){
random_btn.visible=false;
stop_btn.visible=true;
var timer:Timer=new Timer(14000);
timer.addEventListener(TimerEvent.TIMER,timerF);
timer.start();
function timerF(e:TimerEvent){
var n:int=Math.floor(Math.random()*5+1);
switch(n){
case 1:
mail1();
break;
case 2:
mail2();
break;
case 3:
mail3();
break;
case 4:
mail4();
break;
case 5:
mail5();
break;
}
}
stop_btn.addEventListener(MouseEvent.MOUSE_DOWN, stopF);
function stopF(e){
random_btn.visible=true;
stop_btn.visible=false;
timer.removeEventListener(TimerEvent.TIMER,timerF);
random_btn.addEventListener(MouseEvent.CLICK,
randomF);
timer.stop();
}
}
//5个邮件事件处理函数
function mail1(){
maila_mc.addEventListener(Event.ENTER_FRAME,
mailAmc);
function mailAmc(e){
maila_mc.visible=true;
if(maila_mc.y<212){
maila_mc.y+=vy;
if(maila_mc.y>=159&&maila_mc.y<182){
detectLnght.visible=true;
lnghtA.visible=true;
lnghtB.visible=false;
lnghtC.visible=false;
}else{
detectLnght.visible=false;
}
}else if(maila_mc.x<315){
maila_mc.x+=vx;
if(maila_mc.x>312){
maila_mc.visible=false;
maila_mc.x=215;
maila_mc.y=125;
maila_mc.removeEventListener(Event.ENTER_
FRAME,mailAmc);
}
}
}
}
function mail2(){
mailb_mc.addEventListener(Event.ENTER_FRAME, mailBmc);
function mailBmc(e){
mailb_mc.visible=true;
if(mailb_mc.y<256){
mailb_mc.y+=vy;
if(mailb_mc.y>=159&&mailb_mc.y<182){
detectLnght.visible=true;
lnghtB.visible=true;
lnghtA.visible=false;
lnghtC.visible=false;
}else{
detectLnght.visible=false;
}
}else if(mailb_mc.x<315){
mailb_mc.x+=vx;
if(mailb_mc.x>312){
mailb_mc.visible=false;
mailb_mc.x=215;
mailb_mc.y=125;
mailb_mc.removeEventListener(Event.ENTER_ FRAME,mailBmc);
}
}
}
}
function mail3(){
mailc_mc.addEventListener(Event.ENTER_FRAME,mail-Cmc);
function mailCmc(e){
mailc_mc.visible=true;
if(mailc_mc.y<300){
mailc_mc.y+=vy;
if(mailc_mc.y>=159&&mailc_mc.y<182){
detectLnght.visible=true;
lnghtC.visible=true;
lnghtA.visible=false;
lnghtB.visible=false;
}else{
detectLnght.visible=false;
}
}else if(mailc_mc.x<315){
mailc_mc.x+=vx;
if(mailc_mc.x>312){
mailc_mc.visible=false;
mailc_mc.x=215;
mailc_mc.y=125;
mailc_mc.removeEventListener(Event.ENTER_ FRAME,mailCmc);
}
}
}
}
function mail4(){
maild_mc.addEventListener(Event.ENTER_FRAME, mailDmc);
function mailDmc(e){
maild_mc.visible=true;
if(maild_mc.y<344){
maild_mc.y+=vy;
if(maild_mc.y>=159&&maild_mc.y<182){
detectLnght.visible=true;
lnghtD.visible=true;
lnghtA.visible=false;
lnghtB.visible=false;
lnghtC.visible=false;
}else{
detectLnght.visible=false;
}
}else if(maild_mc.x<315){
maild_mc.x+=vx;
if(maild_mc.x>312){
maild_mc.visible=false;
maild_mc.x=215;
maild_mc.y=125;
maild_mc.removeEventListener(Event.ENTER_ FRAME,mailDmc);
}
}
}
}
function mail5(){
maile_mc.addEventListener(Event.ENTER_FRAME, mailEmc);
function mailEmc(e){
maile_mc.visible=true;
if(maile_mc.y<386){
maile_mc.y+=vy+.1;
if(maile_mc.y>=159&&maile_mc.y<182){
detectLnght.visible=true;
lnghtE.visible=true;
lnghtA.visible=false;
lnghtB.visible=false;
lnghtC.visible=false;
}else{
detectLnght.visible=false;
}
}else if(maile_mc.x<315){
maile_mc.x+=vx+.1;
if(maile_mc.x>312){
maile_mc.visible=false;
maile_mc.x=215;
maile_mc.y=125;
maile_mc.removeEventListener(Event.ENTER_ FRAME,mailEmc);
}
}
}}
.
TP29;TP311.11
A
1673-260X(2014)08-0020-03