| 
 
 | Flash制作湖光山色精美动画 
   今天去了一趟闪吧论坛,发现这个好的教程,给大家发表一下!   演示效果 
« Full Screen » 点击这里下载源文件   其实也没什么制作过程,在这里我把山、海、天空、云、还有遮丑等全作成元件,通过调用库中的影片剪辑,实现布局与动画。以下是脚本。 onLoad = function () {// 载入事件,全屏播放,在这里假如fullscreen为false,就取消了全屏播放
 fscommand("fullscreen", true);
 // 定义变量num并赋值,设置帆船的个数。这里设置为十个
 num = 10;
 // 调用库中的元件hai,其实在这里我创建了一个影片剪辑,并设置了链接属性,链接名为hai
 _root.attachMovie("hai", "hai", 19);
 // 这两句是设置hai元件在场景中的位置,这里的hai是海的元件,
 // 这个可以根据你画面的布局来改变参数,
 // 在这里我是通过调用场景的宽及高,然后再通过相除来布局的
 _root.hai._x = Stage.width/2;
 _root.hai._y = Stage.height/1.4;
 // 调用库中的影片剪辑shan,也就是画面中的山,根据画面布局设置参数
 _root.attachMovie("shan", "shan", 17);
 _root.shan._x = Stage.width/2;
 _root.shan._y = 88;
 // 这是天空的元件tian,同上面的相同,不细说了,大家要注重的是这里的层的级别,
 // 我在这里把静止的元件的层固定了下来,然后设置成素数,这里的17,19都是素数,
 // 这样对将来的设置还是有相称的好处,
 // 否则轻易重复层次,这样会造成脚本运行错误
 _root.attachMovie("tian", "tian", 0);
 _root.tian._x = Stage.width/2;
 _root.tian._y = 50;
 // 这个脚本是设置遮丑的,就是大家看到的那个黑布遮挡,因为要挡住所有的动画过程,
 // 所以设置的层也最高,为1000,这样能保证在最上边,1000个层够用了
 // 其实遮丑也是一个制作过程,我想在这里以前我发表过这样的教程及文章,大家细细找找?
 _root.attachMovie("zedang", "zedang", 1000);
 _root.zedang._x = Stage.width/2;
 _root.zedang._y = Stage.height/2;
 // 复制帆船并随机排列帆船的位置,不过在这里纵(Y)方向我采取了固定+随机的排列,
 // X方向我是采取的随机排列,大小通过脚本_xscale = _yscale=Math.floor(Math.random()*80+20);
 // 来控制,这个参数可以根据你的意图来设置,一般来说,100是保持原始大小,大于100是放大,
 // 小于100是缩小,而且支持负数缩放,其实就是反转,这里复制采取了for循环
 for (var i = 0; i<num; i++) {
 // 设置云的速度,为每朵云彩设置不同的速度
 this["yusu"+i] = (i+10)/15;
 // 调用库中的云元件yun,并设置深度(层的级别)我采用了偶数排列
 _root.attachMovie("yun", "yun"+i, 2*(i+1));
 with (this["yun"+i]) {
 // 这里是设置云的位置及大小,都是采用的固定加随机的方式,这只是初始位置
 _x = Math.floor(Math.random()*Stage.width);
 _y = 30+Math.floor(Math.random()*100);
 _xscale = _yscale=Math.floor(Math.random()*80+20);
 }
 // 这里的脚本是动态设置帆船的速度,为每个帆船设置不同的速度,这样才会有快慢感
 this["su"+i] = (i+1)/2;
 // 这里是复制帆船并随机分布帆船的位置,船的大小也是采取了远小近大,这样更适合我们的视觉
 // _y = 149+(20*i);通过这个脚本,实现了帆船能在海元件范围之内分布
 attachMovie("boat", "mc"+i, (i+1)*30);
 with (this["mc"+i]) {
 _x = Math.floor(Math.random()*Stage.width);
 _y = 149+(20*i);
 _xscale = _yscale=(i+1)*num;
 }
 }
 };
 //让onLoad()事件运行一次,否则轻易造成脚本运行不了,没效果,这是在2004中轻易出现的问题
 onLoad();
 //好了,进入帧频事件,开始动画阶段,让我们的动画动起来吧,
 this.onEnterFrame = function() {
 for (var i = 0; i<num; i++) {
 with (this["yun"+i]) {
 //当云彩运动超过场景宽度时,返回左边出现,这样能保证云彩反复出现,因为考虑到影片剪辑的大小,所以设置了返回到左边影片剪辑大小的一半的位置
 if (_x>Stage.width+_width/2) {
 _x = -_width/2;
 }
 //定义云的步进速度,即每帧运行的距离,在这里是动态的赋予速度,用到了前面我们设置的速度
 _x += this["yusu"+i];
 }
 //这里是设置帆船的速度及出现的条件,当超过与云的脚本原理是相同的
 with (this["mc"+i]) {
 if (_x>Stage.width+_width/2) {
 _x = -_width/2;
 }
 _x += this["su"+i];
 }
 }
 };
 //好了,脚本完成,现在大家可以Ctrl+Enter看看自己的作品了,大家感觉是不是用脚本来实现布局,很有成就感?
 //脚本编注:黑市魔旗
 返回类别: Flash教程
 上一教程: FLASH动感效果:帖纸的效果
 下一教程: Flash+Photoshop实现图片模糊效果动画
 
 您可以阅读与"Flash制作湖光山色精美动画"相关的教程:
 · Flash制作精美美女遮罩效果动画
 · Flash制作精美三维方格弹跳动画
 · Flash制作漫天五彩星效果动画
 · 用Flash 8 制作燃烧的香烟效果动画(目录)
 · Flash实用编程五---下雨动画的制作
 
 |