查看完整版本: Flash AS 教程:AS代码实现漂亮的立体球旋转效果

爱你不要你 2008-10-9 09:37

Flash AS 教程:AS代码实现漂亮的立体球旋转效果

作者:zctmh0336  来源:中国教程网论坛

效果演示:

[swf]http://www.jcwcn.com/uploadfile/article/uploadfile/200810/20081007104542752.swf[/swf]

1,建立FLASH文档,起名为“立体球”,保存。设置背景为深蓝色,其他属性默认。

2、新建影片剪辑元件“球”,用椭圆工具画一椭圆,笔触无,放射状填充,色彩自定,大小设20,全居中。最后打开库中影片剪辑元件“球”右键链接如图:

[img]http://www.missyuan.net/upimg/allimg/081009/0935120.jpg[/img]

3、回到场景图层1第1帧右键动作进入动作面板,输入如下语句:[code]_root.createEmptyMovieClip("MC", 1);
MC._x = 275;
MC._y = 200;
MC._xscale = MC._yscale = 50;
n = 0;
R = 200;
f = 300;
var myarray = new Array();
var j = 10;
while (j <= 180)
{
var i = 10;
while (i <= 360)
{
++n;
r = Math.sin(j * 3.141593E+000 / 180) * R;
MC.attachMovie("b", "b" + n, n);
MC["b" + n].x = r * Math.cos(i * 3.141593E+000 / 180);
MC["b" + n].z = r * Math.sin(i * 3.141593E+000 / 180);
MC["b" + n].y = R * Math.cos(j * 3.141593E+000 / 180);
MC["b" + n].kk = function (a)
{
x0 = this.x;
y0 = this.y;
z0 = this.z;
x1 = x0;
y1 = Math.cos(a) * y0 - Math.sin(a) * z0;
z1 = Math.sin(a) * y0 + Math.cos(a) * z0;
f1 = f / (f + z1);
this._x = x1 * f1;
this._y = y1 * f1;
this._alpha = 100 * f / (f + z0);
};
myarray.push(MC["b" + n]);
i = i + 10;
} // end while
j = j + 10;
} // end while
p = 0;
onEnterFrame = function ()
{
p = p + 1.000000E-002;
for (var _loc1 = 0; _loc1 < myarray.length; ++_loc1)
{
myarray[_loc1].kk(p);
} // end of for
}; [/code]保存,测试,OK
页: [1]
查看完整版本: Flash AS 教程:AS代码实现漂亮的立体球旋转效果