鼠标控制,扇形的大小

效果如下图:

package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;

	/**
	 *  @author chb
	 *  @Email [email protected]
	 *  @data 2015-8-28
	 *
	 **/
	[SWF(width="724",height="513",frameRate="60",backgroundColor="0x00cfff")]
	public class DrawSector extends Sprite
	{
		private var sectorSp:Sprite;
		private var dragLineSp:Sprite;
		private var radius:Number;//半径长
		private var initRotation:Number;//初始角度

		private var currentRotation:Number;

		public function DrawSector()
		{
			init();
		}

		private function init():void
		{

			sectorSp = new Sprite();
			this.addChild(sectorSp);
			dragLineSp = new Sprite();
			this.addChild(dragLineSp);

			sectorSp.x = dragLineSp.x = stage.stageWidth*0.5;
			sectorSp.y = dragLineSp.y = stage.stageHeight*0.5;

			radius = 200;
			initRotation = 60;

			dragLineSp.graphics.lineStyle(2,0xffff00,1);
			dragLineSp.graphics.moveTo(radius,0);
			dragLineSp.graphics.lineTo(0,0);

			dragLineSp.graphics.beginFill(0xffff00,1);
			dragLineSp.graphics.drawCircle(radius,0,5);
			dragLineSp.graphics.endFill();

			dragLineSp.rotation = initRotation;
			drawSectorFun(sectorSp,0,0,radius,initRotation,0,0x990000,true);
			dragLineSp.addEventListener(MouseEvent.MOUSE_DOWN,onDragStart);

		}

		private function onDragStart(e:MouseEvent):void
		{
			stage.addEventListener(MouseEvent.MOUSE_MOVE,onDragMove);
			stage.addEventListener(MouseEvent.MOUSE_UP,onDragStop);
		}

		private function onDragMove(e:MouseEvent):void
		{
			dragLineSp.rotation = Math.atan2(dragLineSp.parent.mouseY - dragLineSp.y,dragLineSp.parent.mouseX - dragLineSp.x) * 180 / Math.PI ;//直线随着鼠标旋转
			currentRotation = dragLineSp.rotation;
			/**这是关键,因为rotation的区间是[0,180][0,-180],如果直接用dragLineSp.rotation会导致拖拽绘制扇形错误*/
			if(dragLineSp.rotation < 0)
			{
				currentRotation = dragLineSp.rotation + 360;
			}
			trace(currentRotation);
			drawSectorFun(sectorSp,0,0,radius,currentRotation,0,0x990000,true);

		}
		private function onDragStop(e:MouseEvent):void
		{
			stage.removeEventListener(MouseEvent.MOUSE_MOVE,onDragMove);
			stage.removeEventListener(MouseEvent.MOUSE_UP,onDragStop);
		}

		/**
		 * 画扇形
		 * @param  mc        扇形的容器
		 * @param  x         扇形的 x 坐标
		 * @param  y         扇形的 y 坐标
		 * @param  r         扇形的 半径
		 * @param  angle     扇形的 角度
		 * @param  startFrom 扇形的初始位置,即从什么位子开始画
		 * @param  color     扇形填充色
		 * @param  hasLine   是否描边
		 *
		 */

		private function drawSectorFun(mc:Sprite, x:Number = 200, y:Number = 200, r:Number = 100, angle:Number = 27, startFrom:Number = 270, color:Number = 0xff00ff, hasLine:Boolean = false):void
		{
			mc.graphics.clear();
			mc.graphics.beginFill(color, 1);
			if(hasLine)
			{
				mc.graphics.lineStyle(2,0x0000ff);
			}
			mc.graphics.moveTo(x, y);
			angle = (Math.abs(angle) > 360)?360:angle;
			var n:Number = Math.ceil(Math.abs(angle) / 45);
			var angleA:Number = angle / n;
			angleA = angleA * Math.PI / 180;
			startFrom = startFrom * Math.PI / 180;
			mc.graphics.lineTo(x + r * Math.cos(startFrom), y + r * Math.sin(startFrom));
			for (var i:Number = 1; i <= n; i++)
			{
				startFrom +=  angleA;
				var angleMid:Number = startFrom - angleA / 2;
				var bx:Number = x + r / Math.cos(angleA / 2) * Math.cos(angleMid);
				var by:Number = y + r / Math.cos(angleA / 2) * Math.sin(angleMid);
				var cx:Number = x + r * Math.cos(startFrom);
				var cy:Number = y + r * Math.sin(startFrom);
				mc.graphics.curveTo(bx, by, cx, cy);
			}
			if (angle != 360)
			{
				mc.graphics.lineTo(x, y);
			}
			mc.graphics.endFill();
		}
	}
}

  

  

时间: 2024-11-14 00:18:50

鼠标控制,扇形的大小的相关文章

自定义滚动条——控制div的大小和透明度

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; min-height: 36.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p4 {

Unity3D鼠标控制角色移动

一直都有一颗文学逗比的心,很中二和玛丽苏的想写那种龙傲天的小说.所以这个寒假就非常想敲出个RPG游戏来抒发心中的这份狂热.一开始是想用Three.js来做,后来转用Unity3D来做了,毕竟相对简单一点.好多东西不用自己去写,也可以避免心中这份狂热不至于还没把基础框架搭建好就降为0度了. 角色移动的例子 控制角色移动,对于PC端而言就是键盘或者鼠标.其中键盘控制角色移动的是经典的fps游戏中wasd四个方向按键.而鼠标控制角色移动一般常见于MMORPG.我比较倾向于MMORPG风格控制角色移动,

THREE.js代码备份——线框cube、按键、鼠标控制

<!DOCTYPE html> <html lang="en"> <head> <title>three.js canvas - geometry - cube</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no,

jquery版相片墙(鼠标控制图片聚合和散开)

原文:jquery版相片墙(鼠标控制图片聚合和散开) 照片墙,简单点说就是鼠标点击小图片时,聚合变成一张大图片:点击大图片时,散开变成小图片.这个是我一年前无意间看到的动画效果(现在已经忘记是哪位大神制作的了,引用了他的图片),刚看到这个很炫的动画超级激动,哇!怎么可以这么牛!我制作出来的没那边炫,但是还是制作出来了,算是对我的一种激励!希望能有碰到问题就要解决它的精神,即使不是现在但会是不久的将来! 一.演示效果 散开状态: 聚合状态: 二.html代码 <div class="box&

使用anyremote进行远程鼠标控制

下载服务端的命令 apt-get install anyremote 下载服务端软件 官网的使用说明 http://anyremote.sourceforge.net/use.html 客户端的使用命令 anyremote -f /...path_to.../xmms.cfg -s peer[,peer ...] 我们要进行鼠标控制,所以就使用 anyremote  -f /usr/share/anyremote/cfg-data/Server-mode/mouse.cfg -s socket:

S实现控制图片显示大小的方法【图片等比例缩放功能】

S实现控制图片显示大小的方法[图片等比例缩放功能] [需求]:读取磁盘中的图片,展示在弹出框中,等比例缩放图片,使图片显示完全. (读取磁盘中的图片展示在前台,请参照我的另一篇文章:) [开发]: 调用说明: 直接调用js函数即可. 我测试是一个image 标签中直接调用,如下: <div> <img id="showImageimg"  src="/sirdifoa/applycorrection/getImage.do?imgName=2017001.j

用电脑键盘鼠标控制安卓手机或平板的应用——DeskDock

如果你同时使用多台电脑,可能早已听过Synergy.Input Director.无界鼠标等神奇的工具了,它们可以让你只使用一套键鼠即可控制操作多台不同电脑,让鼠标自由"穿梭"不同屏幕,非常方便. 不过上述软件都只能支持Win.Mac.Linux 等桌面系统,然而今天的主角DeskDock则可以让你使用电脑的鼠标键盘来控制 Android 安卓手机或平板!对于想借助安卓设备实现双屏工作提高效率的,或者经常要与 Android 平台的 APP 打交道的朋友来说可能非常实用,键鼠操作也更加

基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)

转自网络:http://blog.csdn.net/zouxy09/article/details/17913745 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) [email protected] http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无知,倍感吃力.当年惶恐,从而盲从.挣扎了不少时日,感觉自己好像还是处于领域的门外汉一样,在理论与实践的鸿沟中无法挣脱,心里空落落的.在这种挥之不去的烦忧中,某个时候豁然开朗,觉

[Python Study Notes]实现对鼠标控制

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: 鼠标控制.py >>作者: liu yang >>邮箱: [email protected] >>博客: www.cnblogs.com/liu66blog ''''''''''''''''''''''''''''''''''''''''''''''

JS/jquery实现鼠标控制页面元素显隐

最近因为公司网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码.像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下. mouseout和mouseleave 这里需要特别注意mouseout与mouseleave的区别.我们通过下面代码示例来看一下: <p style="color:#333333;font-family:-apple-system, " font-size:16px;&qu