快速业务通道

Flash AS实例:奇妙的滑动菜单

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-15
120;
stop ();
//这段as的含义是设置一个初始的横、纵坐标,其值分别储存在变量aaax,aaay 中。并且在这一帧停止运动。   在第二帧新建关键帧,输入如下as:
if (_root.zh1.aa.cc.jj==1) {
  aaax = _root.zh1.aa.cc.xx;
  aaay = _root.zh1.aa.cc.yy;
} else {
  aaax = 125;
  aaay = 120;
}
//这段代码的含义是:如果元件.cc下的jj这个变量为1,那么就将元件cc下的xx变量值传递给变量aaax, 将元件cc下的yy变量值传递给变量aaay。否则的话aaax和aaay保持初始值不变。(xx,yy变量中储存的是上一次拖拽后的坐标位置)

  这段代码非常关键,我们来详细讲解一下。先注意一下语法:
_root.zh1.aa.cc.jj==1

  表示的是在根下(即场景中)的name属性为zh1的元件内包含了一个name属性为aa的元件,而此name属性为aa的元件内有个name属性为常常的元件,最后在name属性为cc的元件内有变量jj。“==”用来判断是否相等。

  我们知道,我们要做的效果是,当鼠标点击按钮后,按钮的边框将飞出至某一位置静止后,在框内出现一面板显示内容。而此我们是可以使用鼠标自由的拖拽此面板的。并且,当我们点击面板上的back按钮后,面板将消失,框将缩小并回到按钮上。再一次点击按钮,框将自动移动到上一次被拖动的位置,并出现面板。现在的问题是要如何使框自动回到上一次的被拖拽的位置,很显然我们需要将最后一次拖拽停止时的坐标值记录下来。当框再次移动时,就使用记录的坐标值来替换初始的坐标值。而回头看一下前面在“弹出”元件(也就是name属性为cc的元件)内的as,只有当我们使用鼠标拖拽了元件之后,变量jj才会等于1。设置jj变量的原因是,我们要确定浏览者是否进行拖拽,当jj=1时,毫无疑问,已经进行过拖拽,我们可以使用记录的坐标值替换初始组表值了。
这是整个as的一个重点,大家请多看看,再多作一下,一定会有所收获。   在“as”元件的第三帧建立关键帧,并在frame面板上将其frame lable设置为start。
  在“as”元件的第四帧建立关键帧,并输入如下as:

aax = _root.zh1.aa:_x;
//将name属性为aa的元件的横坐标值赋予变量aax
zz = aaax-aax;
//aaax是移动终点的name属性为aa的元件的横坐标,在这里将目前的横坐标与终点的横坐标的 差值赋予变量zz
if (zz>5) {
  _root.zh1.aa:_x = _root.zh1.aa:_x+(aaax-_root.zh1.aa:_x)/3;
} else {
  aax = aaax;
}
//很重要的语句,当zz>5的时候,也就是说,当当前的横坐标与终点的横坐标之差大于5的时候,当前的横坐标将加上三分之zz的数值。而当zz<5的时候,直接用终点坐标来替换当前坐标。

  这样做的目的是,可以使框的运动有一个减速的过程,因为很显然zz的数值将越来越接近终点的坐标,因此当前的坐标变化会一次次的变小,就出现减速的效果。而当当前坐标与终点坐标的差小于5之后(也可以是任意的一个小的数字),我们直接用终点坐标替换当前坐标,终止动画。由于5是个很小的坐标变化,观看时很难察觉到这种细微的变化,不会影响动画的流畅。

aay = _root.zh1.aa:_y;
//将name属性为aa的元件的纵坐标值赋予变量aay ss = aaay-aay;
// aaay是移动终点的name属性为aa的元件的 纵坐标,在这里将目前的纵坐标与终点的纵坐标的 差值赋予变量ss if (ss>5) {
  _root.zh1.aa:_y = _root.zh1.aa:_y+(aaay-_root.zh1.aa:_y)/3;
} else {
  aay = aaay;
}
//很重要的语句,当ss>5的时候,也就是说,当当前的纵坐标与终点的纵坐标之差大于5的时候,当前的纵坐标将加上三分之ss的数值。而当ss<5的时候,直接用终点坐标来替换当前坐标。
if (xcs<190) {
  xcs = xcs+(200-_root.zh1.aa:_width)/3;
  setProperty ("/zh1/aa", _width, xcs);
} else {
  setProperty ("/zh1/aa", _width, 200);
  xcs = 200;
}
if (ycs<240) {
  ycs = ycs+(250-_root.zh1.aa:_height)/3;
  setProperty ("/zh1/aa", _heigh

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号