Flash实例教程:方块动画特效制作_Flash教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:Flash cs3直线工具教程本例为Flash CS3仿真艺术设计系列教程,本文我们将学习Flash cs3中直线工具的应用,在flash中总是有几个不同的方法取得相同的效果。在我们排列中使用所有的不同工具,我总是使用不同的方法使用它们取得不一样的效果。动画渲染一般被归类于“卡通渲染”。这种
效果如下:
1.新建一个flash Actionscript 3 大小为500×300px,背景黑色。
2.在场景里,使用矩形工具(G),设置边框宽3px;画一个正方形大小个40×40px;
3.将这个正方形上点右键,转换元件(为电影剪辑);注册设置为中心;
4.选择元件,右键>链接;设置类为MyBox;
5.回到场景中删除正方形;新建一个Actionscript文件并输入下面代码:
1 2 3 4 5 6 7 8 9 10 11 |
package { import flash.display.MovieClip; public class MyBox extends MovieClip { //这是方块的3d坐标 public var xpos3D:Number = 0; public var ypos3D:Number = 0; public var zpos3D:Number = 0; public function MyBox() { } } } |
另存为MyBox.as,注意存在flash文件的同一路径内,
6.返回主场景,在第一帧中插入下列代码:
//立体场景纵深 const MAXIMUM_Z:Number = 500; //方块数量 const NUMBER_OF_BOXES:Number = 15; //创建一个包含方块的数组; var boxes:Array = new Array(); //视图焦距设置 var focalLength:Number = 300; //Vanishingpoint是方块消失点; var vanishingPointX:Number = stage.stageWidth / 2; var vanishingPointY:Number = 20; //3D方块底边位置 var floor:Number = 80; //第一个方块深度 var startingDepth:Number = MAXIMUM_Z; //盒子之间的z距离值 var zDistance:Number = 50; //这个循环为由远到近的方块定位 for (var i=0; i < NUMBER_OF_BOXES; i ) { var box:MyBox = new MyBox(); box.xpos3D = 0; box.ypos3D = floor; box.zpos3D = startingDepth; //更新方块的深度; startingDepth -= zDistance; //使用角度公式计算缩放比例; var scaleRatio = focalLength/(focalLength box.zpos3D); //缩放坐标比例; box.scaleX=box.scaleY=scaleRatio; //将方块定位到场景中(由3d到2d转换) box.x=vanishingPointX box.xpos3D*scaleRatio; box.y=vanishingPointY box.ypos3D*scaleRatio; //将方块放入数组 boxes.push(box); //将方块加入场景 addChild(box); }在菜单中选择调试>测试场景效果如下:
7.在以上代码后插入如下代码,用于产生动画;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //用ENTER_FRAME事件加入动画函数 addEventListener(Event.ENTER_FRAME, enterFrameHandler); //每一帧都调用这个函数 function enterFrameHandler(e:Event):void { for (var i=0; i < NUMBER_OF_BOXES; i ) { //将box变为局部变量 var box:MyBox = (MyBox)(boxes[i]); //减少深度 box.zpos3D-=5; if (box.zpos3D<=- focalLength) { //最后方块始终在数组第一位 box.zpos3D=boxes[0].zpos3D zDistance; } var scaleRatio = focalLength/(focalLength box.zpos3D); box.scaleX=box.scaleY=scaleRatio; //设置透明度变量 box.alpha=scaleRatio-0.5; box.x=vanishingPointX box.xpos3D*scaleRatio; box.y=vanishingPointY box.ypos3D*scaleRatio; } //根据深度排列数组 sortZ(); } //这个函数使方块正确排列 function sortZ():void { boxes.sortOn("zpos3D", Array.NUMERIC | Array.DESCENDING); for (var i:uint = 0; i < NUMBER_OF_BOXES; i ) { setChildIndex(boxes[i], i); } }
分享:Flash CS4如何控制动画声音的停止和播放今天有闪友问到如何控制AS3中的声音问题,用下面的小实例说明: /* As3Sound.as */ package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash
相关Flash教程:
- 相关链接:
- 教程说明:
Flash教程-Flash实例教程:方块动画特效制作。