`
hacker47
  • 浏览: 340424 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AS3图形基础:画虚线矩形框

 
阅读更多
画虚线矩形框的需求常常都有,虽然API里没有提供现成的线条样式,但是实现起来并不困难。
先看图,按下鼠标拖动。



主要代码如下:

package 
{
	import com.duowan.util.DrawUtil;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;
	
	/**
	 * ...
	 * @author hacker47
	 */
	public class Main extends Sprite 
	{
		private var p0:Point = new Point();
		private var drawWidth:Number;
		private var drawHeight:Number;
		
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
		}
		
		private function onDown(e:MouseEvent):void {
			p0.x=mouseX;
			p0.y= mouseY;
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
			stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
		}
		
		private function onMove(e:MouseEvent):void {
			var dx:Number = mouseX - p0.x;
			var dy:Number = mouseY -p0.y;
			graphics.clear();
			DrawUtil.drawRect(graphics, p0, dx, dy);
		}
		
		private function onUp(e:MouseEvent):void {
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
		}
		
		
		
	}
	
}




public static function  drawDashed(graphics:Graphics,p1:Point,p2:Point,length:Number=5,gap:Number=5):void   
		{   
			graphics.lineStyle(1);
			var max:Number = Point.distance(p1,p2);    
			var l:Number = 0;    
			var p3:Point;    
			var p4:Point;    
			while(l<max)    
			{    
				p3 = Point.interpolate(p2,p1,l/max);    
				l+=length;    
				if(l>max)l=max    
				p4 = Point.interpolate(p2,p1,l/max);    
				graphics.moveTo(p3.x,p3.y)    
				graphics.lineTo(p4.x,p4.y)    
				l+=gap;    
			}    
		}




  • 大小: 29.7 KB
分享到:
评论

相关推荐

    用vb画矩形

    通过VB画矩形,我们可以学习到面向对象编程的概念,以及如何利用GDI+(图形设备接口)进行图形绘制。这不仅可以帮助我们理解VB的基本绘图功能,还为开发更复杂的图形应用打下基础。在实际的VB编程中,这样的技巧经常...

    用画笔绘图,绘图矩形,点划线,虚线,实线显示等,绘制矩形采用两种方法(VB6.0源代码编写)gdi32

    在提供的VB090202-用画笔画矩形源代码中,你可能会看到这些概念的实际应用,包括如何组合使用`Graphics`、`Pen`和`Brush`对象来创建各种图形和线条效果。通过实践和调试这段代码,你可以更深入地理解GDI32绘图的细节...

    VB+Line方法画矩形

    3. **画填充矩形** 如果需要画出填充的矩形,可以在画矩形边框之前先填充内部。VB提供了一个FillRectangle方法,但这里我们依然可以利用Line方法实现。首先画一个与矩形边界相距1像素的内切矩形,然后画出原来的...

    vb绘制简单图形的代码

    我们需要指定一个`Pen`对象和一个矩形区域,该矩形是椭圆的边界框: ```vb Dim rect As New Rectangle(10, 10, 200, 100) Dim ellipsePen As New Pen(Color.Red, 3) g.DrawEllipse(ellipsePen, rect) ``` 3. ...

    MATLAB绘图可视化专题:3 matlab网格线和边框设置.zip

    同时,`saveas`命令可以将绘制好的图形保存为各种格式的图片,便于报告或演示。 总结来说,MATLAB中的网格线和边框设置是提高图形可读性的关键步骤。通过熟练掌握这些命令和技巧,你可以根据需要创造出清晰、专业且...

    PT80-NEAT开发指南v1.1

    第三章 PT80 NEAT 编程基础 ..................................................................................................................... 17 事件驱动和消息响应机制 .................................

    VB.NET - NET Framework - How-To Working with GDI+ Pens

    对于复杂的图形操作,可以考虑将结果先画到`Bitmap`对象,然后一次性绘制到屏幕,以提高性能。 10. **示例代码** 下面是一个简单的VB.NET代码示例,演示如何创建一个红色的矩形: ```vbnet Dim g As Graphics =...

    圆的画法(VB6.0源代码编写)

    `Circle`方法是VB6.0的标准图形函数,它允许开发者直接在窗体或图片框上绘制圆形。使用`Circle`方法的基本语法如下: ```vb Circle (x1, y1, radius, [FillColor], [DrawWidth], [DrawStyle]) ``` 这里的参数含义...

    化工PID-仪表工识图

    矩形框应画在靠近左侧或右侧框处,一般来向画在左侧,去向画在右侧。 - **管道标注**:每段管道都应标注横向管道,在管道上方标注;竖向管道在管道左侧标注。标注内容包括管道号、管径和管道等级三部分。 - **管道...

    C++MFC教程

    3、开发注重交互并且文件读写复杂的的简单应用程序可以利用以CFormView为基础视的单文档视结构。 4、利用对话框得到用户输入的数据,在等级提高后可使用就地输入。 5、在对多文档要求不强烈时尽量避免多文档视结构,...

    javascript canvas API内容整理

    JavaScript的Canvas API是Web开发中用于在网页上动态绘制图形的重要工具。HTMLCanvasElement是HTML5引入的一个元素,用于在浏览器中创建一个可绘制的2D图形区域。这个元素具有两个基本属性:`height`和`width`,分别...

Global site tag (gtag.js) - Google Analytics