目录

  • 1 图层、时间轴、几种常用帧的使用与逐帧动画
    • 1.1 图层的常用使用(复制、删除等)
    • 1.2 时间轴的应用及常用帧的使用(播放头、帧、帧频等、普通帧、关健帧、空帧、空白关健帧等)
    • 1.3 逐帧动画
  • 2 三种元件的使用及元件与仓库
    • 2.1 三种元件的创立(图形元件、影片剪辑元件、按钮元件
    • 2.2 按钮元件的四种状态及其使用方法
    • 2.3 元件及实例的关系及仓库应用
  • 3 补间动画
    • 3.1 文本与FLASH当中对象的5种属性
    • 3.2 形状补间(变形、放大、缩小、旋转、平移、变色、热点变形)
    • 3.3 动画补间(放大、缩小、旋转、平移、变色)
  • 4 引导线动画的应用及实例
    • 4.1 引导线动画理论(图层的设定、引导图层线条的属性、补间动画)
    • 4.2 引导线动画实例1
    • 4.3 引导线动画实例2
  • 5 遮罩动画
    • 5.1 遮罩层与被遮罩层(两个都可以制作补间动画)
    • 5.2 文字实例1
    • 5.3 文字实例2
  • 6 图片遮罩动画
    • 6.1 图片遮罩动画实例1
    • 6.2 图片遮罩动画实例2
    • 6.3 图片遮罩动画实例3音频与视频的控制
  • 7 音频与视频的控制
    • 7.1 声音的导入及管理、音乐格式
    • 7.2 声音的压缩
    • 7.3 视频插件的应用
  • 8 脚本语言控制动画 (一)
    • 8.1 AS中的基本语法
    • 8.2 STOP及PLAY在帧上的使用
    • 8.3 STOP及PLAY在按钮上的使用,按钮的各类触发事件
  • 9 脚本语言控制动画 (二)
    • 9.1 GO TO到达的具体应用(实例)
    • 9.2 STOP ALLSOUND,停止所有的声音应用(实例)
    • 9.3 URL网络链接(实例)
  • 10 脚本语言控制动画 (三)
    • 10.1 LOUD MORE加载MC、SWF、JPG等
    • 10.2 实例的属性各类控制1(放大、缩小、X、Y轴控制、)
    • 10.3 实例的属性各类控制2(旋转、透明度等控制)
  • 11 脚本语言控制动画 (四)
    • 11.1 MC鼠标跟随及锁定等
    • 11.2 IF条件语句的应用
    • 11.3 变量
  • 12 综合AS实例讲解
    • 12.1 AS实例讲解1
    • 12.2 AS实例讲解2
    • 12.3 AS实例讲解3
  • 13 FLASH短片的制作过程
    • 13.1 剧本的编写、角色及背景的确认及绘制
    • 13.2 镜台本的绘制(FLASH中开始创绘制)设计并绘制大量MC,并制作补间动画
    • 13.3 动作的调整、后期音效同步处理
AS实例讲解3


实例三 点击小图看大图效果  

var targetArr:Array=[];  var pointArr:Array=[];  var picArr:Array=[];  var index:int;  

var targetPoint=new Point(275,200);  for (var i:int=0; i<20; i++) {  var point:Point=new Point();  var targetP:Point=new Point();  

//var C:Class=getDefinitionByName("cat"+i) as Class;/加载同路径文件夹中的名字为cat+i20张的图片  

var bmd:BitmapData=new C(0,0);//库中一个图片类文件  var bmp:Bitmap=new Bitmap(bmd);  var mc:MovieClip=new MovieClip();  addChild(mc);  

mc.addChild(bmp);  

bmp.x=- bmp.width/2;  bmp.y=- bmp.height/2;  mc.scaleX=mc.scaleY=.4;  

i<6?(mc.x=2.5+mc.width/2+i*(mc.width+10),mc.y=mc.height/2):0;//上面六个图片的位置,坐标为图片的中心  

i>=6&&i<10?(mc.x=550-mc.width/2-2.5,mc.y=mc.height/2+mc.height+8+(i-6)*(mc.height+8)):0;//右边四张图片的坐标  

i>=10&&i<16?(mc.x=550-mc.width/2-2.5-(i-10)*(mc.width+10),mc.y=400-mc.height/2):0;//下面六张图片坐标  

i>=16&&i<20?(mc.x=mc.width/2+2.5,mc.y=400-mc.height/2-mc.height-8-(i-16)*(mc.height+8)):0;//左边四张图片的坐标  

point.x=targetP.x=mc.x,point.y=targetP.y=mc.y;//记录此时每张图片的位置  mc.mouseChildren=false;  

mc.n=i;//定义mc的私有属性记录每张图片的索引值  picArr.push(mc);//  

targetArr.push(targetP);  pointArr.push(point);  }  

var timer:Timer=new Timer(1000);  

timer.start();  

timer.addEventListener(TimerEvent.TIMER,picMove);  var k:int=0;  

function picMove(e) {//图片移动效果  k++;  

for (var j:int=0; j<pointArr.length; j++) {  

targetArr[j].x=pointArr[(k+j)%pointArr.length].x;//当前点的坐标随着k的增加等于目标点坐标循环变换  

targetArr[j].y=pointArr[(k+j)%pointArr.length].y;  

if (picArr[j].x==275&&picArr[j].y==200) {//说明是中心位置的图片  continue;  

} else {//说明是周围的图片  

picArr[j].x=pointArr[(k+j)%pointArr.length].x;//让每张图片的坐标循环变换  picArr[j].y=pointArr[(k+j)%pointArr.length].y;  }  }  }  

for (i=0; i<picArr.length; i++) {  picArr[i].buttonMode=true;  

picArr[i].addEventListener(MouseEvent.CLICK,clickF);  }  

function clickF(e) {  

setChildIndex(e.target,numChildren-2);//先把当前被点击的图片放在第二层  objMove(e.target,targetPoint,1,1);  

if (picArr[index].x==275,picArr[index].y==200) {  objMove(picArr[index],targetArr[index],.15,.15);  }  

index=e.target.n;  }  

function 

objMove(displayObject:DisplayObject,targetObj:Point,targetScalex:Number,targetScaley:Number) {  

///**/参数分别是当前对象,当前点 ,x方向的缩放值,y方向上的缩放值  timer.stop();//先让计时器停止,即点击图片动画过程中让图片移动的事件停止  displayObject.addEventListener(Event.ENTER_FRAME,frame);  function frame(e) {  

for (var i:int=0; i<picArr.length; i++) {  picArr[i].mouseEnabled=false;  picArr[i].buttonMode=false;  

picArr[i].removeEventListener(MouseEvent.CLICK,clickF);// 点击每张图片后马上先移除点击事件  }  

e.target.x+=(targetObj.x-e.target.x)/5;//缓动公式实现缓动效果  e.target.y+=(targetObj.y-e.target.y)/5;  

e.target.scaleX+=(targetScalex-e.target.scaleX)/5;  e.target.scaleY+=(targetScaley-e.target.scaleY)/5;  var 

dis:Number=Math.sqrt((targetObj.x-e.target.x)*(targetObj.x-e.target.x)+(targetObj.y-e.target.y)*(targetObj.y-e.target.y));  

if (Math.abs(dis)<1) {//目标点和当前点的距离  e.target.x=targetObj.x;  e.target.y=targetObj.y;  

displayObject.removeEventListener(Event.ENTER_FRAME,frame);//图片达到目标点后移除该帧频事件  trace("ok");  

for (i=0; i<picArr.length; i++) {//然后给每张图片再重新添加点击事件  picArr[i].addEventListener(MouseEvent.CLICK,clickF);  picArr[i].buttonMode=true;  picArr[i].mouseEnabled=true;  }  

timer.start();//计时器开始运行,即周围图片继续移动  }  }  }  

var sp:Sprite=new Sprite();//画相框  addChild(sp);  sp.x=275;  sp.y=200;  

sp.graphics.lineStyle(15,0xb66700);  

sp.graphics.drawRect(-174,-124,348,248);  sp.graphics.lineStyle(2,0xa95401);  

sp.graphics.drawRoundRect(-177,-127,354,254,10,10);  sp.graphics.lineStyle(3,0xa95401);  

sp.graphics.drawRoundRect(-173,-123,346,246,10,10);  sp.graphics.lineStyle(1.5,0xa95401);  sp.graphics.moveTo(-178,-128);  sp.graphics.lineTo(-168,-118);  sp.graphics.moveTo(178,-128);  sp.graphics.lineTo(168,-118);  sp.graphics.moveTo(178,128);  sp.graphics.lineTo(168,118);  sp.graphics.moveTo(-178,128);  sp.graphics.lineTo(-168,118);  

sp.filters=[new BevelFilter(3,45,0xff9900,1,0x660000,1,5,5,1,3),new DropShadowFilter(4,45,0,1,5,5,.5,3)];  //=======  

var format:TextFormat=new TextFormat("Impact",15,0xff00ff,true);  var txt:TextField=new TextField();  addChildAt(txt,numChildren-1);  txt.text="这里随便写些东西";  txt.wordWrap=true;  

txt.setTextFormat(format);  txt.width=txt.textWidth;  txt.height=txt.textHeight;  txt.x=10,txt.y=33;