| 
 第五部分—绘制mask shape 
 你只需要知道两个特别的点。一个点创建一个空的movie clip,并在其中绘制一些东西。另一个点用另一个动画来遮住一个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._x, _root.stage.d1._y); 
      endFill();     //我认为不需要解释这部分。你能在Flash MX的帮助或者参考中找到它们。我是从那里拷贝过来的。     // Pretty clear, right? (很清楚了吧?)   } 
    setPage3();   //我们需要在鼠标移动时移动和旋转movie clip Page3。这就是为什么在这里我们需要这个函数
    _root.stage.page3.setMask(_root.stage.triangle);  }
  
 这是我们还需要知道的一个函数:setMask。 
 就个人而言,我认为这个 setMask 函数在使用时有些小bug。它不象其他函数那么好用。 我要提醒你的另一件事是,在同一级脚本里你只能用setMask一次,意思就是,如果你想同时setMask movie clip Page2,你需要创建新的 mask movie clip,并在不同级的脚本中setMask。 
 很难理解吗?好吧,在我的例子里,我把下一个setMask放在movie clip Page2里。 
 // 移动并旋转movie clip Page3 function setPage3(){ 
    _root.stage.page3._x = _root.stage.d1._x;   _root.stage.page3._y = _root.stage.d1._y; 
    angle = _root.getAngle(_root.stage.stage.d1._x,_root.stage.stage.d1._y, _root.stage.stage.d4._x, _root.stage.stage.d4._y);   _root.stage.page3._rotation = angle + 90; //为什么这里加了90度?我不知道。我只是发现加了这个之后数字才能很好地工作
  _root.stage.page3._alpha = 100; //记得我们把movie clip Page3的透明度设置为0了吗?现在我们需要把它变回去。因为movie clip Page2在Page3的下一层。 } 
 在这一课程中多加一条编码。 在movie clip “Stage”中: 
 onClipEvent (enterFrame) {   _root.startSlip(); } 
 这一段代码使 Flash 一直检查鼠标的位置。 
出处:5D多媒体
 
责任编辑:qhwa 
上一页 第四部分-其他三个点 下一页 第六部分-在Page2中绘制 mask shape 
◎进入论坛Flash专栏版块参加讨论
	       |