旋转360度的Flash动画制作方法

      鼠标与mc位置控制能实现很多效果:鼠标移动,图片移动,鼠标到顶图片也到达边界,按下鼠标,放大图片,释放缩小……其实归根结底就是设置MC的_x坐标、_y坐标和_xscale、_yscale放大属性,熟悉了下面的例子,就可以很容易地理解MC跟着鼠标移动的实现原理了。
    
    引用例子之前先解释两个函数
getProperty

getProperty(my_mc:Object, property:Object) : Object

返回影片剪辑 my_mc 的指定属性的值。

setProperty

setProperty(target:Object, property:Object, e­xpression:Object) : Void

当影片剪辑播放时,更改影片剪辑的属性值。
target:Object – 要设置其属性的影片剪辑的实例名称的路径。
property:Object – 要设置的属性。
e­xpression:Object – 或者是属性的新的字面值,或者是计算结果为属性新值的等式。

下面是旋转360度的动画制作方法
—————————————————–

一、首先准备好十张图片,以备做图之用;
二、新建FLASH文件,场景大小设为1000*600,背景颜色设为黑色(根据图片的背景色而定),帧频设为36桢。
三、将已准备好的十张图片一次性导入库中。
四、编辑元件:
1、点击插入——新建元件,类型为电影剪辑,元件名为P0;
2、点菜单——窗口,打开库面板,将第一张图片导入到P0的场景中(图片的顺序在导入到库之前可根据需要排序好),图片大小设为360*270,用对齐工具将图片对齐居中;
3、按上述方法新建P1——P9个元件,每建一个元件就要拖入一张图片,以对应新建的元件。

五、组织场景:
1、回到主场景中,在图层一的第2帧插入一个空白关键帧(F7),将库中的P0元件拖入到场景中(为了操作方便可将场景缩小到25%),将P0元件的右边缘与场景的左边缘对齐,下边缘与场景的下边缘对齐,并在属性面板实例名处输入P0。(此时不需关闭库面板,以备拖入下一张图片时操作方便)

2、按上述方法,在图层一的第二帧处将库中的P1——P9元件依次拖入到场景中,放在左下角,与第一张图片对齐,每拖入一个元件图片必须在属性面板实例名处输入与拖入的图片相对应的P1——P9的符号;
3、完成上述工作后,在图层一的第三帧处向插入一普通针(F5)。
六、点击插入图层按纽,新建图层二:
1、在图层二的第一帧点击右键,打开动作面板,输入动作代码:
var a = -90;
var m = 300;
var n = 60;
var s = 1;
var scale=0.2
2、在图层二的第二帧插入空白关健帧;
七、新建图层三:
1、在图层三的第一帧点击右键,打开动作面板,输入动作代码:
fscommand(“allowscale”, “false”);
2、在图层三的第二帧插入空白关键帧,点击右键,打开动作面板,输入动作代码:
s1=getProperty ( _root, _xmouse ) //将鼠标X坐标值赋值给s1
s2=getProperty ( _root, _ymouse ) //将鼠标Y坐标值赋值给s2
s3=(300-s2)/400+1
s=((s1-500)/100)*2
a = a-s;
if (a<-360) {
a = a+360;
}
for (i=0; i<=19; i++) {
str = “p”+i;  //动态获取图片名称
b = a+36*i;
setProperty (str, _xscale, s3/2*Math.sin(Math.PI*b/180)*100*(1-(1+Math.sin(Math.PI*b/180))*scale)); //设置图片x轴方向放大的代数式
x1 = s3*m*Math.cos(Math.PI*b/180);
y1 = s3*n*Math.sin(Math.PI*b/180);
setProperty (str, _x, x1+500);
setProperty (str, _y, 300-y1);
setProperty (str, _yscale, s3/2*100*(1-(1+Math.sin(Math.PI*b/180))*scale));//设置图片y轴放大代数式
setProperty (str, _alpha, 80-Math.sin(Math.PI*b/180)*20);//设置透明度
if ((Math.sin(Math.PI*b/180)>0 and i<10) or (Math.sin(Math.PI*b/180)<=0 and i>=10)) {
_root[str]._visible = false;
} else {
_root[str]._visible = true;
}
}
3、在图层三的第三帧插入空白关键帧,点击右键,打开动作面板,输入动作代码。
gotoAndPlay(2);
八、新建图层四:
1、将图层四拖到图层一的下方;第二帧插入空白关键帧。
2、再次将库中的元件P0——P9依次拖入场景左下角,与图层一的图片对齐,在每拖一张的同时,必须在属性面板的实例名称中依次输入P10——P19的名称。
3.第三帧处向插入一普通针(F5)。
注:(此时可以在场景中测试动画了)
九、根据个人的意图,还可以增加图层五,在图层五的第一桢拖入一张作为背景的图片,大小设为1000*600,居中对齐;在第三帧插入一普通桢,并将图层五拖到图层四的下方。
(注:图层五根据个人的喜好,可设也可不设。)然后存盘,测试电影,您可以欣赏你的大作了。
如果添加音乐,您 可以在增加图层六,在属性面板——同步处,选“开始”。

Categories: 技术爱好

3 Comments

  • 老吧 says:

    经典的老教程了

  • ... says:

    不知你这过程是完整的吗?我参照着做了,可看不到效果,这是怎么回事呀!

  • pobabyzdm says:

    请解释一下这句setProperty (str, _xscale, s3/2*Math.sin(Math.PI*b/180)*100*(1-(1+Math.sin(Math.PI*b/180))*scale)); //设置图片x轴方向放大的代数式
    可以吧?真的。。。。。。。。。。

Leave a Comment