论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

纵深空间效果

文章类别:Flash | 发表日期:2008-9-21 19:20:41

  看一下效果先(打开有点慢):
点击浏览该文件
它的效果有:
先是远离观众,一段时间后自动停止,接下来慢慢地靠近观众,单击文字,文字会移动到屏幕中心,并加速靠近,直到超过屏幕范围,“穿过”观众。^_^

制作思路:

基本思路就在于改变文字对象的Z坐标。而对于文字朝观众迎面而来的效果,实例上是将观众所在的位置制作了一个camera对象,来模拟照相机的功能,即文字离观众越近,文字越大,然后不断改变camera对象和文字在Z轴方向上的距离。

1.创建文字对象

首先制作响应鼠标单击的按钮元件,要求该按钮透明。

(1) 新建文档,定义背景为黑色,大小为600*337像素。

(2) 在场景1下创建一个句为txtbtn的按钮元件。

(3) 进入按钮txtbtn的编辑状态,将“点击”帧转换成空白要害帧,使用矩形工具绘制一个边色为无、填充黑色,大小为100*10的矩形,中心对齐舞台中心。

(4) 保持其其余各帧空白,退出txtbtn的编辑状态,Ok!
按此在新窗口浏览图片

接一下来创建文字对象。

(1) 在场景下创建一个名为txtline的影片剪辑

(2) 进入影片剪辑txtline的编辑状态,将层1更名为text.

(3) 选择层text的第一帧,使用文字工具在舞台中心创建一个文字对象,保持内容为空。在属性面板中设置该文字对象的属性如图所示,中心对齐舞台中心。

按此在新窗口浏览图片

(4) text层上新建一个名为button的层,选择该层的帧1,从库中拖曳1个按钮txtbtn的实例到舞台,中心对齐舞台中心,属性面板中实例名为btnSquare

按此在新窗口浏览图片

(5) button层上新建一个名为definition的层。选择该层的帧1,打开动作面板,写代码

#initclip
//构造器
function SpaceWord() {
//设置按钮的功能
this.btnSquare.onPress = function() {
//将照想机朝向单词
Object.environment.cam.dx = this._parent.x;//假如被点击就把该文字设为cam的目标
Object.environment.cam.dy = this._parent.y;
Object.environment.cam.dz = this._parent.z+Object.environment.fl*.9;
this.enabled = false;//被单击后就禁用按钮
this._visible = false;//隐藏按钮
};
this.onEnterFrame = this.render;
SpaceWord.prototype = new MovieClip();
SpaceWord.prototype.render = function() {
var zActual = Object.environment.fl+this.z-Object.environment.cam.z;//this.z=cam.z时并不是说文字布满整个相机。这时文字显示出来的还是14号字体大小。它比例还是100%,并没有放大。
//让单词在相机后移动
if (zActual>0) {
//对象仍然可见时,则计算其大小
var scale = Object.environment.fl/zActual;
this._x = (this.x-Object.environment.cam.x)*scale;
this._y = (this.y-Object.environment.cam.y)*scale;
this._xscale = scale*100;
this._yscale = scale*100;
this._alpha = 100 - 99 * zActual/Object.environment.fl*.5;
} else {
this.z += Object.environment.fl*2;
this.btnSquare.enabled = true;
this.btnSquare._visible = true;
}
};

SpaceWord.prototype.setWord = function(s) {//前面的initialization中的txtword:word; this.txtWord = s;

};

SpaceWord.prototype.setPosition = function(x, y, z) { //前面的initialization {txtword:word,x:x,y:y,z:z};
this.x = x;
this.y = y;

this.z = z;
};

Object.registerClass("spaceWord", SpaceWord);

#endinitclip

(6) 退出影片剪辑txtline的编辑状态,完成编辑。

(7) 在库面板中选择影片剪辑txtline,右键菜单选择“属性”命令,在“元件属性”设置,如图:
按此在新窗口浏览图片

2编写脚本:
选择主场景的第一帧,写下代码:


Object.environment = this;
//创建一个照相机对象。并设置它的参数初值,包括:x,y,z,dx,dy,dz
this.cam = {x:0, y:0, z:500, dx:0, dy:0, dz:0};
//设置环境常量
this.fl = 1000;
//创建文字所要附在其上的空影片剪辑space
this.createEmptyMovieClip("space",1);
//让文字放在舞台中间。
space._x=300;
space._y=169;

this.somewords = "观安闲菩萨 行深般若波罗蜜多时 照见五蕴皆空 度一切苦厄 舍利子 色不异空 空不异色 色既是空 空既是色 受想行识 亦复如是 舍利子 是诸法空相 不生不灭 不垢不净 不增不减 是故空中无色 无受想 行识 无眼耳鼻舌身意 无色声香味触法 无眼界 乃至无意识界 无无明亦无无明尽 乃至无老死 亦无老死尽 无苦集灭道 无智亦无德 以无所得故 菩提萨埵 依般若波罗蜜多故 心无挂碍 无挂碍故 无有恐怖 远离颠倒梦想 究竟涅盘 三世诸佛 依波罗蜜多故 得阿耨多罗三藐三菩提 故知般若波罗蜜多 是大神咒 是大明咒 是无上咒 是无等等咒 除一切苦厄 真实不虚 故说般若波罗蜜多咒 即说咒曰 揭谛揭谛 波罗揭谛 波罗僧揭谛 菩提萨婆呵 ";

//用数组来存放这些文字
this.wordList = new Array();
this.wordList = this.somewords.split(" ");
//为数组的每个单词创建一个实例
for (n=0;n<this.wordList.length;n++) {
var word = Object.environment.wordList[n];
//随机设置其XYZ、坐标,其中Z坐标代表其深度

var x = random(600)-300;
var y = random(337)-169;
var z = random(Object.environment.fl*2)-Object.environment.fl;
//创建一个SpaceWord对象的实例
nombre = "word"+String(depth++);
initialization = {txtword: word, x: x, y: y, z: z};
space.attachMovie("spaceWord", nombre, depth, initialization);//spaceWord附加到space上,新名为nombre,初始为initialization

}

this.onEnterFrame = function() {
this.cam.dz+=.5;//目标文字一直在前移
//将照相机朝其目标移动,也就是朝文字移动,也就是dx,dy,dz
this.cam.x+=(this.cam.dx-this.cam.x)/10;
this.cam.y+=(this.cam.dy-this.cam.y)/10;
this.cam.z+=(this.cam.dz-this.cam.z)/30;
}
stop();



好了,ctrl+enter!!!!

3。

好了,我来解释一下:

首先,来看Object.environment.fl(也就是后面的this.fl)是什么?

我们先想当文字的Z坐标(cam.dz)和照相机的Z坐标(cam.z)相等会出来什么效果?是不是就是文字“穿过”的那一刻呢?其实不是的,为什么?当cam.dz==cam.z时,文字显示出来的仍然是14号字体,比例并没有改变,而“穿过”时的那一刻cam.z==cam.dz+Object.environment.fl,
Object.environment.fl是我们设定的,用在Z轴上的。它的意义就是,当照相机运动这样一段的距离之后,文字会从100%的比例变大到“穿过”相机的大小。就可以有“穿过”的感觉。
源文件:
点击浏览该文件

上一篇:{应用}遮罩效果的详解 人气:3274
下一篇:{应用}一个跟随特效 人气:1758
视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058