第五部分—绘制mask shape
你只需要知道两个特别的点。一个点创建一个空的movie clip,并在其中绘制一些东西。另一个点用另一个动画来遮住一个movie clip。
好了,让我们来编码。
// 创建遮罩movie clip
function drawMask(){
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 一直检查鼠标的位置。
文章地址: http://www.qqread.com/flash/2006/10/s246523.html进入讨论组讨论。相关专题
- Flash教程 常用短语trace();使用 (0次浏览)
- 贪吃蛇游戏代码翻译 (0次浏览)
- 把fla文件输出成和swf一样的gif文件 (0次浏览)
- 什么是AS2.0面向对象编程 (0次浏览)
- AS3学习笔记 (0次浏览)
- Flash交互式动画之星座查询器制作 (0次浏览)
- AS3.0的类及绑定 (0次浏览)
- AS3 中的反射 (0次浏览)
- AS3 技巧和提示 (0次浏览)
- 利用引导线制作动态爱心两例 (0次浏览)



