收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画实例 >> 正文
移动镜头3D推进动画效果         
移动镜头3D推进动画效果
作者:chenlang… 文章来源:原创 点击数:1609 更新时间:2010-12-20 2:32:06

两步完成可移动镜头的3D推进动画

有时候,需要做复杂场景的推进动画,并让整个场景根据鼠标的位置来调整镜头视角,以达到真实3D空间的效果。

如果用3D引擎来做的话,确定场景中的每个MC的3D坐标,会是一件很麻烦的事情。

这里提供一种非常简单的方法,共两个步骤:

1.在时间轴上制作推进动画,并将整个动画命名为world

2.在主时间轴上添加如下代码:

function followMouse(mc:MovieClip, x_para:Number, y_para:Number, stoped:Boolean) {

var x:Number = mc._xmouse*x_para;

var y:Number = mc._ymouse*y_para;

for (var i in mc) {

  if (typeof (mc[i]) == "movieclip") {

var _mc:MovieClip = mc[i];

if (stoped && _mc.old_matrix) {

matrix = _mc.old_matrix.clone();

} else {

var matrix = _mc.transform.matrix.clone();

_mc.old_matrix = matrix.clone();

}

matrix.tx -= matrix.a*x;

matrix.ty -= matrix.d*y;

//trace(_mc.old_matrix)

_mc.transform.matrix = matrix.clone();

  }

}

}

onEnterFrame = function () {

followMouse(world, .1, .05);

};

主要思路是根据每个MC的缩放来确定它的Z值,并加上鼠标响应。

提供3个样例,大家注意推进动画的中心点必须放在(0,0)位置,动画播放和停止时,传递的stoped参数一定要正确。

基于时间轴动画的3D推进.fla (145.5 KB)

基于时间轴动画的3D推进.swf (20.22 KB)

基于时间轴动画的鼠标特效A.fla (60.5 KB)

基于时间轴动画的鼠标特效A.swf (4.79 KB)

基于时间轴动画的鼠标特效B.fla (60.5 KB)

基于时间轴动画的鼠标特效B.swf (3.76 KB)

---------------------------------------------------------------------

参考另一教材:

效果如下:把鼠标移动到图片上试试,因此称为移动镜头

动画略

1.新建一个影片剪辑.名为:MC

在第一桢做一个圆,填充任意颜色.在第2桢在相同的位置做一个圆,填充任意颜色.呵呵,怎么好看就怎么做喽!

2.接着在建一个影片剪辑,名为:people.

把上面做的MC拉到这里第1桢.在90桢处加关键桢并把圆拉到场景外.中间做动作补间.在第100桢处加关键桢并把圆的Alpha的值设为0.把圆拖到任意位置,中间做动作补间.在101桢加个空白关键桢写上代码:this.removeMovieClip():意思是控制指定元件MC,动作次数为一次.

3.然后在建一个影片剪辑,实列名称为:world.

把people这个影片剪辑拖进来.OK.这个推进动画就做完了.

回到主场景,把实列名world的这个剪辑拖到场景中.

4.新建图层2.第一桢写上如下代码:

import flash.geom.*;

//鼠标响应

function followMouse(mc:MovieClip, x_para:Number, y_para:Number) {

var x:Number = mc._xmouse*x_para;

var y:Number = mc._ymouse*y_para;

for (var i in mc) {

if (typeof (mc[i]) == "movieclip") {

var _mc:MovieClip = mc[i];

var matrix = _mc.transform.matrix.clone();

matrix.tx -= matrix.a*x;

matrix.ty -= matrix.a*y;

_mc.transform.matrix = matrix.clone();

}

}

}

var n = 0;

onEnterFrame = function () {

var p=world.attachMovie("people", "people"+n, 20000-n)

p._rotation = n*27;

p._mc.gotoAndStop(n%2+1)

n=n>10000?0:n+1

var draw_line:Boolean = false;

for (var i in world) {

followMouse(world[i], .2, .2);

}

};

文章录入:晴天    责任编辑:音乐听听 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长