快速业务通道

在Flash中用Action Script实现3D效果

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-09
[1]?[2]?下一页??
  注释1:定义显示的文字为11个。
  注释2:定义组成3D图形的元素有10个。
  注释3:定义一个控制3D图形显示比例的变量。
  注释4:在这里定义几个数组,大小为刚刚所定义的变量,用来放置3D图形的各种细节。
  注释5:为了使效果看起来更好,这里实现全屏效果,有关fscommand更多的细节可以查看Flash中自带的帮助文件。
  注释6:复制文字Movie Clip,个数为前面所定义的变量值。
  注释7:复制组成图形的元素的Movie Clip,个数为前面所定义的变量值。
  注释8:设置3D图形中的文字的x、y、z坐标值,这里是3维的,改变这些值就改变了文字在3D图形中的位置。
  注释9:设置3D图形中的图形元素的x、y、z坐标值,因为图形元素已经是2维的,所以只需要2个值就可以表示3维的效果。
  注释10:定义一个函数,在这个函数里面,根据传入的x、y、z的坐标值,改变在相应数组中的值,从而实现了旋转的效果。
  注释11:定义一个常量,在将值转换成弧度的时候用。
  注释12:因为在下面的sin/cos函数中只能使用弧度,所以将传入的x、y、z坐标值转换成弧度。
  注释13:在这个循环里面,依次改变数组中的x、y、z的值,实现旋转效果。
  注释14:在Flash中只能显示二维坐标,这个函数就实现了将三维坐标转换成二维坐标,这里的实现方法很值得深思。
  注释15:这里的350和262.5分别为图形元素的长和宽,如果改变了图形元素的大小,也要相应的改变这两个值。
  注释16:这个函数实现了对最终生成三维图形进行显示和渲染,若要实现不同的显示效果,修改里面相应的值即可。
  9、在“Scripts”层的第2帧的Action面板上面添加如下语句:

rotx = (oldy-_ymouse)/2; // 注释1
roty = (oldx-_xmouse)/2;
oldx = _xmouse;
oldy = _ymouse; ax++; // 注释2
ay++; ax += rotx; // 注释3
ay += roty;
ay += by;
ax += bx;
az += bz;
bx = 0; // 注释4
by = 0;
bz = 0;
rotate(ax, ay, az); // 注释5
az++;
if (ax>360) { // 注释6
ax -= 360;
}
if (ay>360) {
ay -= 360;
}
if (az>360) {
az -= 360;
}
toScreen(); // 注释7
render(); // 注释8
nu = 4;
  注释1:这里的四行是取得鼠标的位置。
  注释2:这里将x、y、z的值自增一,是为了在鼠标不动的时候,图形还可以保持旋转。
  注释3:这里是为了响应鼠标的动作而设置的值。
  注释4:将值设置为0,在下次循环的时候使用。
  注释5:调用第一帧里面所定义的函数,旋转传入的坐标值。
  注释6:旋转一周为360度,要对超过360的值进行处理。
  注释7:调用第一帧里面所定义的函数,将三维的坐标转换成可以在Flash显示的二维坐标。
  注释8:调用第一帧里面所定义的函数,渲染、显示所生成的三维图形。
  10、在“Scripts”层的第3帧的Action面板上面添加如下语句:

gotoAndPlay(2);

  注释:回到第二帧,使效果看起来连贯。
  三、小结

  至此,实例就制作完了,效果虽然比较简单,但也为在Flash中实现3D效果提供了一种思路。

  相信经过本实例的研究,对Flash中函数的操作、坐标的转换、用Action Script控制图形的显示、Action Script数组的操作等等都会变的得心应手,仔细研究一下,还是值得的。

  另外,将实例中涉及的文字和图形元素进行变换,可以得到不同的效果。对相应的值进行修改,也可以改变显示的效果,如大小,位置,透明度等等。 ?上一页??[1]?[2]?
关键词:3D

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号