当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash AS教程:旋转立方体

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 Flash AS教程:旋转立方体


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 89 ::
收藏到网摘: n/a

好,下面开始:

stop();
//这个stop是让FLASH播放在这一帧停下来,但对代码的运行没有影响~其实不用也没关系
angle=-0.03;
dot_x=Stage.width/2;
dot_y=Stage.height/2;
p=70;
d=300;
//先初始化一下变量~angle是立方体每次转过的角度,dot_x和dot_y定义了空间的原点,p是立方体边长的一半,d是眼
//睛距离屏幕的像素
sx=new Array(-p,p,p,-p,-p,p,p,-p);
sy=new Array(-p,-p,-p,-p,p,p,p,p);
sz=new Array(-p,-p,p,p,-p,-p,p,p);
//这三个数组储存了立方体八个点的实际坐标
tempx=new Array(8);
tempy=new Array(8);
//这两个数组用来存储立方体8个点在屏幕上的坐标
function r(){
for(i=0;i temp_x=sx*Math.cos(angle)-sz*Math.sin(angle);
temp_z=sx*Math.sin(angle) sz*Math.cos(angle);
//这个是用来计算立方体在转动时八个点的坐标
sx=temp_x;
sy=sy;
sz=temp_z;
//要这样赋值一下~否则立方体会越转越长
tempx=(sx/(sz d))*d dot_x;
tempy=(sy/(sz d))*d dot_y;
//这个是用来将立方体的实际坐标转化成屏幕的坐标,不懂的可以参考一下计算机图形学的书

}
_root.createEmptyMovieClip("lines", 1);
lines.lineStyle(1, 11111111, 100);
lines.moveTo(tempx[0],tempy[0]);
lines.lineTo(tempx[1],tempy[1]);
lines.lineTo(tempx[2],tempy[2]);
lines.lineTo(tempx[3],tempy[3]);
lines.lineTo(tempx[0],tempy[0]);
lines.lineTo(tempx[4],tempy[4]);
lines.lineTo(tempx[5],tempy[5]);
lines.lineTo(tempx[6],tempy[6]);
lines.lineTo(tempx[7],tempy[7]);
lines.lineTo(tempx[4],tempy[4]);
lines.moveTo(tempx[1],tempy[1]);
lines.lineTo(tempx[5],tempy[5]);
lines.moveTo(tempx[2],tempy[2]);
lines.lineTo(tempx[6],tempy[6]);
lines.moveTo(tempx[3],tempy[3]);
lines.lineTo(tempx[7],tempy[7]);
_root.removeMovieClip("lines");
//上面的这一堆东西是用来把算出来的立方体的点用线连起来~其实可以优化一下的
updateAfterEvent();
//更新一下
}
setInterval(r,5);
//每隔5毫秒运行一次函数r()

终于写完了哈

" /> 写的不好~请见谅`~再发一次效果,嘿嘿