快速业务通道

ActionScript实现雷达扫描遮罩效果

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-13


  思路是用三角形动态的模拟扇形遮罩,不过并不是十分的完善。
  需要事先将图片处理成圆形才能完成效果,当然,我想这一部工作并不复杂。代码的功能是从第一象限开始,以原点为顶点,角度为thta开始绘制等边三角形,将等边三角形的两条边之间的部分做为遮罩部分,(注意三角形要为填充图形),填充完第一象限以后,在填充第二象限的同时,要将第一象限的范围加入。
  依此类推...
  这个代码有一定的重用性,修改圆心坐标和半径,可以对不同位置和大小的圆形图片,进行扇形扫描遮罩的效果,半径需满足条件r>图片半径*1.42
  AS代码:
var ox=200; //原点x坐标
var oy=200; //原点y坐标
var r=150; //半径r
var thta=0; //起始角度

_root.onEnterFrame=function()
{
if(thta<=(Math.PI/2)){
_root.createEmptyMovieClip("draw_1_mc",1);
_root.draw_1_mc.moveTo(ox,oy);
_root.draw_1_mc.lineStyle(2,0xff0000,100);
_root.draw_1_mc.beginFill(0xff0000,100);
_root.draw_1_mc.lineTo(ox,oy-r);
_root.draw_1_mc.lineTo(ox+r*Math.sin(thta),oy-r*Math.cos(thta));
_root.draw_1_mc.lineTo(ox,oy);
_root.draw_1_mc.endFill(); }
else
if(thta<=(Math.PI)){
ithta=thta-(Math.PI/2);
_root.createEmptyMovieClip("draw_1_mc",1);
_root.draw_1_mc.moveTo(ox,oy);
_root.draw_1_mc.lineStyle(2,0xff0000,100);
_root.draw_1_mc.beginFill(0xff0000,100);
_root.draw_1_mc.lineTo(ox,oy-r);
_root.draw_1_mc.lineTo(ox+r,oy);
_root.draw_1_mc.lineTo(ox+r*Math.cos(ithta),oy+r*Math.sin(ithta));
_root.draw_1_mc.lineTo(ox,oy);
_root.draw_1_mc.endFill();
}
else
if(thta<=(Math.PI*3/2)){
ithta=thta-(Math.PI);
_root.createEmptyMovieClip("draw_1_mc",1);
_root.draw_1_mc.moveTo(ox,oy);
_root.draw_1_mc.lineStyle(2,0xff0000,100);
_root.draw_1_mc.beginFill(0xff0000,100);
_root.draw_1_mc.lineTo(ox,oy-r);
_root.draw_1_mc.lineTo(ox+r,oy);
_root.draw_1_mc.lineTo(ox,oy+r);
_root.draw_1_mc.lineTo(ox-r*Math.sin(ithta),oy+r*Math.cos(ithta));
_root.draw_1_mc.lineTo(ox,oy);
_root.draw_1_mc.endFill();
}
else
if(thta<=(Math.PI*2+0.01)){
ithta=thta-(Math.PI*3/2);
_root.createEmptyMovieClip("draw_1_mc",1);
_root.draw_1_mc.moveTo(ox,oy);
_root.draw_1_mc.lineStyle(2,0xff0000,100);
_root.draw_1_mc.beginFill(0xff0000,100);
_root.draw_1_mc.lineTo(ox,oy-r);
_root.draw_1_mc.lineTo(ox+r,oy);
_root.draw_1_mc.lineTo(ox,oy+r);
_root.draw_1_mc.lineTo(ox-r,oy);
_root.draw_1_mc.lineTo(ox-r*Math.cos(ithta),oy-r*Math.sin(ithta));
_root.draw_1_mc.lineTo(ox,oy);
_root.draw_1_mc.endFill();
}
_root.pic.setMask(_root.draw_1_mc); //动态设置遮罩
_root.thta+=0.01;
}

  源文件:http://www.it365cn.com/upload/863.fla
  未经作者同意,本教程请勿转载。 关键词:遮罩 扫描

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