快速业务通道

关于制作Flash翻书效果的研究

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10
s position. (自己完成这部分。基本上,我还要用三个函数来设置 D1的位置)

  }

  }
  提示:你的鼠标要去四个区域,在每个区域里,D1的位置是不同的。在这个例子里,我们只讨论区域A。我会把所有的代码放在最终文件里,你如果感兴趣的话,可以稍后查看。  

  
请添加描述
  

  因为要按住鼠标拖动页面,你需要移动的第一个点是在页面右下角的点。

  很好,我们还有三个点要做,耐心一点。

  第四部分

  ——得到所有其他三个点:  

  同上面一样,你有几种情况要考虑。  

  第一种情况比较简单。第3点位于边EF上。在这种情况下,点D4与点D3位于同一位置。  

  
请添加描述


  另一种情况比较难一点。点D3位于边CE上。你需要计算D3和D4。  

  
请添加描述


  或者:  

  
请添加描述


  这里,我们需要一些三角函数来获得所有的数值。嗨,一定有更有效的方式来编码,我真是没兴趣再做一遍。:(

  我只需要提醒你一件事:  

  Flash的坐标系开始于左上角,逐渐向下扩展到右边。  

  对于一个数学家来说,求得所有的点很可能只需要几分钟,但是我却花了整整一个上午。如果你想做,你可以自己做,或者只需拷贝这些代码。  

  // Using point D1 and Point F find all the other points. (用D1和F来找到其他的点)

  function getD234(){  

  len = _root._root.getDist(pfx, pfy, _root.stage.d1._x, _root.stage.d1._y);

  len1 = len/2;

  len2 = (pfx - _root.stage.d1._x)/2;  

  _root.stage.d2._x = pfx - len1*len1/len2;

  _root.stage.d2._y = pfy;

  len2 = (pfy - _root.stage.d1._y)/2;

  len3 = len1*len1/len2;  

  _root.stage.d3._x = pfx;

  _root.stage.d3._y = pfy - len3;  

  // Check out weather point D4 is at the same location of point D3. (检查D4是否和D3在同一个位置)

  if (_root.stage.d3._y < pey){

  ptx = pex - (pfx - _root.stage.d2._x)*(pey - _root.stage.d3._y)/len3;

  pty = pey;  

  len = _root.getDist(_root.stage.d3._x, _root.stage.d3._y, ptx, pty);

  len1 = (pex - ptx)*(pey - _root.stage.d3._y)/len;  

  len2 = len1*len1/(pex - ptx);

  _root.stage.d4._x = pex - len2*2;  

  len2 = len1*len1/(pey - _root.stage.d3._y);

  _root.stage.d4._y = pey - len2*2;  

  _root.stage.d3._x = ptx;

  _root.stage.d3._y = pty;  

  }else{

  _root.stage.d4._x = _root.stage.d3._x;

  _root.stage.d4._y = _root.stage.d3._y;

  }

  }
  哇,现在我们快完成了,继续!



  第五部分:  

  ——绘制mask shape  

  你只需要知道两个特别的点。一个点创建一个空的movie clip,并在其中绘制一些东西。另一个点用另一个动画来遮住一个movie clip。  

  好了,让我们来编码。  

  // Create masking movie clip (创建遮罩movie clip)

  function drawMask(){

  _root.stage.createEmptyMovieClip ("triangle", 1);

  with (_root.stage.triangle) {

  colors = [ 0xEFEFEF, 0xFFFFFF ];

  alphas = [ 100, 100 ];

  ratios = [ 0, 0xFF ];

  matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 };  

  beginGradientFill( "linear", colors, alphas, ratios, matrix );  

  moveTo (_root.stage.d1._x, _root.stage.d1._y);

  lineTo (_root.stage.d2._x, _root.stage.d2._y);

  lineTo (_root.stage.d3._x, _root.stage.d3._y);

  lineTo (_root.stage.d4._x, _root.stage.d4._y);

  lineTo (_root.stage.d1._

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号