静岡理工科大学 菅沼ホーム ActionScript 目次 索引

Graphics クラス

[内容]

  描画をサポートするクラスです.具体的には,Sprite クラス,および,Shape クラスの graphics プロパティを使用して描画します.

継承: Graphics → Object

[メソッド]

[使用例]

  1. 使用例1 : 以下に示すのは,「beginBitmapFill() メソッドの使用例」と,そのプログラム( beginBitmapFill_e.as )です.左側は repeat を false にした場合,右側は true にした場合です.
    package
    {
    	import flash.display.Sprite;
    	import flash.display.BitmapData;
    	import flash.geom.Matrix;
    
    	[SWF(backgroundColor="0xeeffee", width="450", height="200", frameRate="20")]
    
    	public class beginBitmapFill_e extends Sprite
    	{
    		public function beginBitmapFill_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var x1 : int, y1 : int;
    			var bmd : BitmapData = new BitmapData(50, 50, true, 0xff00ff00);
    			for(x1 = 0; x1 < 100; x1++) {
    				for(y1 = 0; y1 <= 40; y1 += 10) {
    					bmd.setPixel32(x1, y1, 0xffffff00);
    					bmd.setPixel32(x1, y1+1, 0xffffff00);
    					bmd.setPixel32(x1, y1+2, 0xffffff00);
    				}
    			}
    			var ang : Number = 30.0 * Math.PI / 180.0;
    			var mtx : Matrix = new Matrix(Math.cos(ang), Math.sin(ang), -Math.sin(ang), Math.cos(ang), 75, 5);
    
    			var rect1 : Sprite = new Sprite();
    			rect1.graphics.lineStyle(5, 0xff0000ff);
    			rect1.graphics.beginBitmapFill(bmd, mtx, false);
    			rect1.graphics.drawRect(50, 50, 150, 100);
    			rect1.graphics.endFill();
    			addChild(rect1);
    
    			var rect2 : Sprite = new Sprite();
    			rect2.graphics.lineStyle(5, 0xff0000ff);
    			rect2.graphics.beginBitmapFill(bmd, mtx, true);
    			rect2.graphics.drawRect(250, 50, 150, 100);
    			rect2.graphics.endFill();
    			addChild(rect2);
    		}
    	}
    }
    			

  2. 使用例2 : 以下に示すのは,「beginGradientFill() メソッドの使用例」と,そのプログラム( beginGradientFill_e.as )です.左から,spreadMethod として,SpreadMethod.PAD,SpreadMethod.REFLECT,及び,SpreadMethod.REPEAT を使用した例です.なお,SpreadMethod.PAD の場合は,グラディエーションを適用する幅を変更しています.
    package
    {
    	import flash.display.Sprite;
    	import flash.display.GradientType;
    	import flash.display.SpreadMethod;
    	import flash.geom.Matrix;
    
    	[SWF(backgroundColor="0xeeffee", width="650", height="200", frameRate="20")]
    
    	public class beginGradientFill_e extends Sprite
    	{
    		public function beginGradientFill_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var colors : Array = [0x0000ff, 0x00ff00];
    			var alphas : Array = [1, 1];
    			var ratios : Array = [0, 255];
    			var mtx1 : Matrix = new Matrix();
    			var mtx2 : Matrix = new Matrix();
    			mtx1.createGradientBox(100, 100, 0, 0, 0);
    			mtx2.createGradientBox(50, 100, 0, 0, 0);
    
    			var rect1 : Sprite = new Sprite();
    			rect1.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, mtx1, SpreadMethod.PAD);  
    			rect1.graphics.drawRect(50, 50, 150, 100);
    			rect1.graphics.endFill();
    			addChild(rect1);
    
    			var rect2 : Sprite = new Sprite();
    			rect2.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, mtx2, SpreadMethod.REFLECT);  
    			rect2.graphics.drawRect(250, 50, 150, 100);
    			rect2.graphics.endFill();
    			addChild(rect2);
    
    			var rect3 : Sprite = new Sprite();
    			rect3.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, mtx2, SpreadMethod.REPEAT);  
    			rect3.graphics.drawRect(450, 50, 150, 100);
    			rect3.graphics.endFill();
    			addChild(rect3);
    		}
    	}
    }
    			

  3. 使用例3 : 以下に示すのは,「curveTo() メソッドと lineStyle メソッドの使用例」と,そのプログラム( curveTo_e.as )です.左から,lineStyle の caps として,CapsStyle.NONE,CapsStyle.ROUND,及び,CapsStyle.SQUARE を使用した例です.
    package
    {
    	import flash.display.Sprite;
    	import flash.display.Shape;
    	import flash.display.LineScaleMode;
    	import flash.display.CapsStyle;
    
    	[SWF(backgroundColor="0xeeffee", width="650", height="200", frameRate="20")]
    
    	public class curveTo_e extends Sprite
    	{
    		public function curveTo_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var line1 : Shape = new Shape();
    			line1.graphics.lineStyle(20, 0x00ff00, 1, true, LineScaleMode.NORMAL, CapsStyle.NONE);  
    			line1.graphics.moveTo(50, 100);
    			line1.graphics.curveTo(125, 50, 200, 100);
    			addChild(line1);
    
    			var line2 : Shape = new Shape();
    			line2.graphics.lineStyle(20, 0x00ff00, 1, true, LineScaleMode.NORMAL, CapsStyle.ROUND);  
    			line2.graphics.moveTo(250, 100);
    			line2.graphics.curveTo(325, 50, 400, 100);
    			addChild(line2);
    
    			var line3 : Shape = new Shape();
    			line3.graphics.lineStyle(20, 0x00ff00, 1, true, LineScaleMode.NORMAL, CapsStyle.SQUARE);  
    			line3.graphics.moveTo(450, 100);
    			line3.graphics.curveTo(525, 50, 600, 100);
    			addChild(line3);
    		}
    	}
    }
    			

[参照]

Matrix クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引