Flash实例教程:方块动画特效制作_Flash教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:Flash cs3直线工具教程
本例为Flash CS3仿真艺术设计系列教程,本文我们将学习Flash cs3中直线工具的应用,在flash中总是有几个不同的方法取得相同的效果。在我们排列中使用所有的不同工具,我总是使用不同的方法使用它们取得不一样的效果。动画渲染一般被归类于“卡通渲染”。这种

效果如下:

1.新建一个flash Actionscript 3 大小为500×300px,背景黑色。

2.在场景里,使用矩形工具(G),设置边框宽3px;画一个正方形大小个40×40px;

3dbox2

3.将这个正方形上点右键,转换元件(为电影剪辑);注册设置为中心;

3dbox3

4.选择元件,右键>链接;设置类为MyBox;

3dbox4

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);

}

在菜单中选择调试>测试场景效果如下:

3dbox7

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教程/更新时间:2009-03-18
相关Flash教程