利用简单的AS来实现空间立体图形旋转效果 |
| 作者:佚名 来源:闪吧 作者: 龙族酷少 更新:2007-1-13 20:48:43 错误报告 我要投稿 |
点击浏览该文件
以前也发过类似效果,但总觉得不是太好理解,现在用算是比较通俗的写了个:
做法很简单,将下面的代码直接放在场景第一桢的动作面板中:重要的是明白原理……
我已经在代码上做了比较详细的注释
a = 200; b = 200; rx = 150; ry = 5; speed = 0.05; N = 8;//以上是初始化一些变量 hu = (Math.PI/180); angle = new Array();//定义一个数组 square = function (mc, tian) {//自定义一个函数,有两个参数 with (mc) { lineStyle(1, 0xffff00, 100); beginFill(tian, 100); moveTo(0, 0); lineTo(30, 0); lineTo(30, 30); lineTo(0, 30); lineTo(0, 0); endFill(); }//这个函数的主要作用是画一个正方形并进行填充 }; _root.onLoad = function() { for (i=1; i<=N; i++) { //创建N个影片,并分别在这N个影片中调用函数,在每个影片中创建一个正方形,并随机填充颜色 _root.createEmptyMovieClip("mc"+i, i); square(_root["mc"+i], random(0xffffff));//或者填充颜色用rgb angle[i] = i*360/N;//设置创建正方形的角度 } }; _root.onEnterFrame = function() { for (i=1; i<=N; i++) {//先面用到了椭圆公式,也就是让创建的这些影片绕着椭圆轨道运动 this["mc"+i]._x = rx*Math.cos(hu*angle[i])+a; this["mc"+i]._y = ry*Math.sin(hu*angle[i])+b;//设置创建影片的坐标,根据椭圆公式 this["mc"+i]._alpha = Math.sin(hu*angle[i])*40+60;//设置透明度,这里注意Y坐标方向与我们熟悉的直角坐标的Y方向相反 this["mc"+i]._xscale = (1-Math.abs(Math.cos(hu*angle[i])))*100;
//控制创建的正方形的X方向上的缩放,就是椭圆轨道两边的缩放程度大,正对着Y轴的不进行缩放,从而模拟空间效果 angle[i] += speed*(_root._xmouse-a); //角度的增加或者减少是根据鼠标与椭圆轨道中心点的距离来确定的,鼠标与此点距离越远,旋转速度越快 } };
原文件:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |