Flash动态缓冲图片导航制作详解

导航|动态|详解

  缓冲公式在制作特效中非常有用,著名的三星导航菜单就用到了此公式。现在许多网站出尽风头,其中缓冲导航是其一大亮点。本文以一德国网站的导航为例,详解缓冲导航的制作。这个效果是我和溶剂共同完成的,他提供坐标的算法,我提供缩放的算法。

  本例效果演示

鼠标划过的部分图片会变大

  制作思路

  1. 图片缩放控制
    利用缓冲公式设置图片的缩放比例,如果鼠标滑过某图片,放大1.8倍。如果其它图片的序号与此图片的序号相差1,就是此图片两边的图片,放大1.4倍,其它的为原始大小。
  2. 图片坐标控制
    当某图片放大时,相邻的图片的坐标等于此图片的坐标加上这两张图片的宽度的一半,实现图片无间距排列。
  3. 线条和文字控制
    线条用画线函数实现,文字的坐标和缩放比例与对应的图片相同。

  制作过程
  1、启动Flash,新建一个影片,设置影片大小为600px*200px。
  准备好如图中的素材,图片的实例名分别为zjs0到zjs4,文字的实例名分别为z0到z4。
  把中间的图片坐标设为(300,130),选中全部的图片,按CTRL+K调出排列面板,设置为顶部对齐,使图片的y坐标相同,图片的x坐标通过AS来控制。用同样的方法使方字的y坐标相同,并调整好文字和图片的间距。

  2、在主场景中的第一帧上添加下列代码

 //获取中间图片的x坐标 for (var i = 0; i<5; i++) {  this["zjs"+i].n = i;  //每个图片MC下定义一个变量  this["zjs"+i].onRollOver = function() {   control = true;   //鼠标滑过图片时为真  };  this["zjs"+i].onRollOut = function() {   control = false;   //鼠标移出图片时为假  }; } onEnterFrame = function () {  for (var k = 0; k<5; k++) {   this["z"+k]._x = this["zjs"+k]._x;   // 说明文字的x坐标等于本应图片的x坐标   this["z"+k]._xscale = this["zjs"+k]._xscale;   this["z"+k]._yscale = this["zjs"+k]._yscale;   // 说明文字的缩放比例与图片相同  }  if (control) {   mouse_in();  } else {   mouse_out();  }  // 条件真或假时调用函数 }; //坐标设置函数 function setX() {  for (var k = -2; k<3; k++) {   this["zjs"+(k+2)]._x = myx+this["zjs"+2]._width*k;   //以中间图片为准无间距排列  }  for (var k = Number(temp1)+1; k<5; k++) {   //temp1为缩放比例最大的图片下的变量值   var mc1 = this["zjs"+k];   var mc2 = this["zjs"+(k-1)];   //此图片右边的其它图片   mc1._x = mc2._x+(mc2._width+mc1._width)/2-1;   //设置这些图片的x坐标,1为消除图片间的空隙  }  for (var k = Number(temp1)-1; k>-1; k--) {   var mc1 = this["zjs"+k];   var mc2 = this["zjs"+(k+1)];   mc1._x = mc2._x-(mc2._width+mc1._width)/2+1;  }  //缩放比例最大的图片的左边的图片的x坐标设置  myLine();  //图片下方的线条 } //比例缩放函数 function move_scale(x, obj) {  speed = (x-obj._xscale)*.65+speed*0.6;  obj._xscale += speed;  obj._yscale += speed;  //缓冲公式,x为图片的缩放比例,obj为MC } //鼠标滑过图片时,图片的缩放、x坐标设置函数 function mouse_in() {  for (var i = 0; i<5; i++) {   var mc = this["zjs"+i];   //获得实例名   if (mc.hitTest(_xmouse, _ymouse, true)) {    move_scale(180, mc);    //如果鼠标位于图片的上方,图片放大1.8倍    temp1 = mc.n;    //把此图片下的变量赋给变量temp1   } else if (Math.abs(mc.n-temp1) == 1) {    move_scale(140, mc);    //两侧的图片比例放大1.4倍   } else {    move_scale(100, mc);    //其它的图片为原始大小   }  }  setX();  //设置图片的x坐标 } //鼠标移出图片时,图片的缩放、x坐标设置函数 function mouse_out() {  for (var i = 0; i<5; i++) {   move_scale(100, this["zjs"+i]);   //缩放比例为1,恢复原始大小  }  setX();  //坐标复原 } //线条函数 function myLine() {  createEmptyMovieClip("line", 1);  //创建一个空影片  with (line) {   lineStyle(0.1, 0xff9933, 100);   moveTo(zjs0._x-zjs0._width/2, zjs0._y+10);   lineTo(zjs4._x+zjs4._width/2, zjs4._y+10);   //图片下方水平的直线   moveTo(zjs0._x-zjs0._width/2, zjs0._y+5);   lineTo(zjs0._x-zjs0._width/2, zjs0._y+15);   //右边垂直的直线   moveTo(zjs4._x+zjs4._width/2, zjs4._y+5);   lineTo(zjs4._x+zjs4._width/2, zjs4._y+15);   //左边垂直的直线  } } 

  按CTRL+ENTER测试,本例制作完成。掌握原理后,加上好的创意,相信你能做出更好的特效。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, 导航
, 坐标
, 缓冲
, 文字
, 控制
, 图片坐标
, 导航算法
, 图片导航
, 坐标系详解
android坐标系详解
flash 网络缓冲区、flash 在线播放 缓冲、flash 缓冲、磁盘动态缓冲监视程序、动态缓冲监视程序,以便于您获取更多的相关知识。

时间: 2024-06-12 04:00:46

Flash动态缓冲图片导航制作详解的相关文章

精彩动态导航菜单制作详解

菜单|导航|动态|详解 公式在制作特效中非常有用,著名的三星导航菜单就用到了此公式.现在许多韩国网站出尽风头,其中缓冲导航是其一大亮点.本文以一德国网站的导航为例,详解缓冲导航的制作.感谢溶剂提供的坐标算法. 本例效果预览: 制作思路 1.图片缩放控制 利用缓冲公式设置图片的缩放比例,如果鼠标滑过某图片,放大1.8倍.如果其它图片的序号与此图片的序号相差1,就是此图片两边的图片,放大1.4倍,其它的为原始大小. 2.图片坐标控制 当某图片放大时,相邻的图片的坐标等于此图片的坐标加上这两张图片的宽

C/S考试系统程序制作详解

大型作业答辩:C/S考试系统程序制作详解 一.服务器程序 采用了WinSocket32的完成端口模型(I/O completion ports) WIN32多线程技术 ODBC APIS 进行数据库操作 二.客户端程序 用Win32 API函数构造主窗体和界面元素,如图一所示: 图一 程序组织结构 服务器程序详解 一.完全端口模型(I/O completion ports)是迄今为止最为复杂的一种I/O模型,假如一个程序需要管理为数众多的套接字,那么采用这种模型往往可以达到最佳的系统性能,不幸的

WPS演示倒计时制作详解之滚动条

倒计时制作详解(一)滚动条 倒计时在教学和演示中应用比较广范,制作方法各有特点,我将利用图文教程的方式,详细展示常见倒计时的几种做法,这是其中做法之一. 打开wps视频模板,在第一页第一个文本框中修改题目"倒计时",在第二个文本框中题目修改为"制作人:北方",字体微软雅黑,字号等项默认. 图- 1 在幻灯片任务窗格中,单击第一页后面,出现一条横向闪动的细线,通过按键盘上的回车键,新建一张幻灯片.在其中第一个文本框中修改题目"倒计时一",设置对齐方

Android 自定义imageview实现图片缩放实例详解

Android 自定义imageview实现图片缩放实例详解 觉得这个自定义的imageview很好用 性能不错  所以拿出来分享给大家  因为不会做gif图  所以项目效果 就不好贴出来了  把代码贴出来 1.项目结构图 2.Compat.class package com.suo.image; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.view.View; pu

PHP和MYSQL实现分页导航思路详解

预期效果 思路 通过SQL语句 SELECT * FROM table LIMIT start end 来从MySql数据库 步骤 传入页码p: 根据页码获取数据php->mysql 显示数据+分页条 源码 github 链接 注意点 table,input,button等控件的样式不会继承body,需要重新定义如下 input,label, select,option,textarea,button,fieldset,legend,table{ font-size:18px; FONT-FAM

Android中图片压缩方案详解及源码下载

Android中图片压缩方案详解及源码下载 图片的展示可以说在我们任何一个应用中都避免不了,可是大量的图片就会出现很多的问题,比如加载大图片或者多图时的OOM问题,可以移步到Android高效加载大图及多图避免程序OOM.还有一个问题就是图片的上传下载问题,往往我们都喜欢图片既清楚又占的内存小,也就是尽可能少的耗费我们的流量,这就是我今天所要讲述的问题:图片的压缩方案的详解. 1.质量压缩法 设置bitmap options属性,降低图片的质量,像素不会减少 第一个参数为需要压缩的bitmap图

教程/dreamweaver/提高 表格妙用-线框制作详解(3)

dreamweaver|教程|详解 细线边框的制作 细线边框是网页中定位区分内容常用的一种方法,配合特定图片的使用,往往能够达到不错的效果,那么如何制作细线边框呢? 大家都知道,所谓细线边框,大体外观上就是一个简单的1行1列表格,那么我们直接把表格对象的Border值设定为1不就可以了吗?请看下面的制作效果: 同样在网页中指定位置插入一个单行单列的表格,用鼠标单击表格外框的任何一个部位以选中它,在属性板中将"Border"值设定为1,也可以同时将另外的"CellPad&quo

DreamWeaver表格妙用-线框制作详解(3)

dreamweaver|详解 2> 细线边框的制作 细线边框是网页中定位区分内容常用的一种方法,配合特定图片的使用,往往能够达到不错的效果,那么如何制作细线边框呢? 大家都知道,所谓细线边框,大体外观上就是一个简单的1行1列表格,那么我们直接把表格对象的Border值设定为1不就可以了吗?请看下面的制作效果: 同样在网页中指定位置插入一个单行单列的表格,用鼠标单击表格外框的任何一个部位以选中它,在属性板中将"Border"值设定为1,也可以同时将另外的"CellPad&

打造美丽新“视”界—无边窗口制作详解

详解 喜欢网页制作的朋友总是希望自己的作品完美无缺.然而IE浏览器窗口总灰头土脸,千篇一律.简单的网页还能胜任,如果碰到艺术性较强的网页,IE窗口的地址栏以及各种按扭多多少少会影响网页的整体效果.如何才能使网页的艺术效果与浏览器的窗口很好的结合起来,使之更加完美?今天我就给大家介绍一种非常流行的网页效果.在下面在制作过程当中,我们要用到两个HTML页面,一个是首页面index.htm,点击该页面中的一个超级链接,便可以打开我们想要的无边窗口.另一个是内容页面index2.htm,该页面便是无边窗