庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>媒体动画>Flash>动画制作技巧>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Flash动画的“遮丑”研究

 作者:黑市魔旗    日期:2005-6-20
字号选择〖 〗/ 双击滚屏 单击停止   
长久以来,我们在制作动画的时候很少关心“遮丑”问题,一至于有些看起来制作挺好的作品,在发布的时候因为画面的宽度超过了影片的宽度而使场景外的东西在发布的网页或者说是播放的影片中展露出来,会使你感觉束手无策。一个小问题就上升到了一个引起关注的程度上来,自然在网络中,就有人写出了这方面的文章,加以研究,高手也都会用“遮丑”把自己不想展露的东西遮挡起来,可是有些时候普通制作的“遮丑”也不是完全能起作用,下面我们看一个例子:


遮丑无效的效果

这里上下的黑边是我作的“遮丑”,其实这里“遮丑”并没起作用,并没挡住雨滴在银幕外出现,用普通实现的“遮丑”在这里是不是不起作用?

  为什么会出现这样的问题?在这里我要多说几句,希望大家不要嫌烦!我们知道,FLASH动画是基于时间轴的线性动画,而时间轴上有图层,这样就会出现一个图层的级别问题,也就是我们常说的深度的问题,上面的图层总是覆盖住下面的图层,直接的说,就是深度值大的图层遮盖深度值小的图层,而在flash中又规定了脚本的层级深度高于任何级别的场景中非脚本创建的影片层级深度,所以上面大家看到的下雨是我用脚本创建的一个下雨的效果,而遮丑是我用手工拖入到场景一个影片剪辑,这样根据脚本的深度级别高于非脚本创建的影片剪辑深度级别,自然就会使“遮丑”失效,因为下雨的深度高于用于“遮丑”影片剪辑的深度。如何解决“遮丑”失灵的问题呢?下面我来谈谈这方面的问题。

  我们知道在FLASH脚本中,我所接触到的涉及到深度的命令只有三个(我只是说我所接触到的)duplicateMovie();,attachMovie();,createEmptyMovie();分别是复制影片剪辑命令,创建位于库中的影片剪辑,创建空的影片剪辑。而这三个命令的层级深度是在一个级别上的,也是处于最高级别上的,所以这就给我们实现任何情况下都能实现“遮丑”提供了可能,我的思路是,用普通的方法创建一个“遮丑”影片剪辑,然后利用脚本调用,然后设置其深度,这样就会避免出现上面出现的问题了,而用脚本控制最好的方法就是实现直接用脚本调用位于库中的影片剪辑,就是用attachMovie();这个命令,下面我们看代码:


_root.onLoad = function() {
attachMovie("zedang", "zedang", 10000);
this.zedang._x = Stage.width/2;
this.zedang._y = Stage.height/2;
};


其中zedang是我制作的“遮丑”影片剪辑的链接名,影片剪辑的注册点在中心,在主场景中调用是让其位于场景中心,所以我用了this.zedang._x = Stage.width/2;this.zedang._y = Stage.height/2;这样不管你场景设置多大,都会保证这个“遮丑”位于场景的中心,深度我随便设置为10000,我想你作一个影片不会有一万多个图层吧,哈,这个如果你确实是图层多,这里可以设置为10000000,也不是不可以的,这个脚本保证了在任何情况下都会把你的“丑”遮住的,不信?试试,下面我把源文件公布出来,大家可以下载研究,也可以提出不同意见,我的想法也可能不成熟,不过感觉还是不错的,在这里大家不要见笑哟。下面是我制作的完整的下遮丑效果及下雨的代码脚本。

“遮丑”效果




_root.onLoad = function() {
Num = 200;
attachMovie("zedang", "zedang", 10000);
this.zedang._x = Stage.width/2;
this.zedang._y = Stage.height/2;
for (var i = 0; i attachMovie("yu", "yu"+i, i);
_root["yu"+i]._x = Math.floor(Math.random()*500);
_root["yu"+i]._y = Math.floor(Math.random()*400);
_root["yu"+i]._rotation = -32;
_root["yu"+i]._alpha = Math.floor(Math.random()*i);
_root["yu"+i]._xscale = _root["yu"+i]._yscale=25;
_root["su"+i] = (3+i/Num);
}
};
this.onEnterFrame = function() {
for (var k = 0; k this["yu"+k]._x += _root["su"+k];
this["yu"+k]._y += _root["su"+k];
if (this["yu"+k]._x>500) {
this["yu"+k]._x = 0;
}
if (this["yu"+k]._y>400) {
this["yu"+k]._y = 0;
}
}
};

上一篇:flash “翻页”的做法    下一篇:巧妙提取Flash文件中的素材  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 黑市魔旗
信息来源: 网络 录入时间: 2005-6-20
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿