it leader

코드로 cilrcle, rectangle, roundrectangle 그리기



setter / getter 와 클래스, 상속 개념을 이용하여


코드로 circle과 rectangle, roundrectangle을 그리려고 한다.


순서는


1. BaseShape 에 setter와 getter로 각 쉐입의 속성값을 정의한다.

2. 공통이 되는 속성은 drawMain으로 묶는다.

3. 각 도형의 값은 drawSub로 각각 정의해 준다.



BaseShpe.as



package com.timo.display

{

import.flash.display.Graphics;

import.flash.display.Sprite;



public class BaseShape extends Sprite                 //스프라이트의 상속을 받는다.

{


private var _fillColor : uint = 0xffffff;                    // default 값을 설정한다.

private var _fillAlpha : Number = 1;                    // fillColor 면색, fillAlpha : 면의 투명도

private var _lineColor : uint = 0x000000;              // lineColor 테두리의 색, lineThickness  테두리의 두께, lineAlpha 테두리의 투명도

private var _lineThickness : Number = 1;

private var _lineAlpha : Number = 1;


public function BaseShape(width : Number . height : Number ) 

{


}


public function set fillColor ( value : uint ) : void

{

_fillColor = value;

}

public function get fillColor () : uint

{

return  _fillColor;

}

public function set fillAlpha ( value : Number ) : void

{

_fillAlpha = value;

}


public function get fillAlpha ( ) : Number

{

return _fillAlpha;

}


public function set lineColor( value : uint ) : void

{

_lineColor = value;

}


public function get lineColor() : uint

{

return _lineColor;

}


public function set lineThickness ( value : Number ) : void

{

_lineThickness = value;


}

public function get lineThickness ( ) : Number 

{

return _lineThickness;

}


public function set lineAlpha( value : Number ) : void

{

_lineAlpha = value;

}

public function get lineAlpha() : Number

{

return _lineAlpha;

}

//public : 오픈.  private :  클래스 안에서 만 오픈( 자신만 ) 

// protected 자기 자신하고, 상속받은 자식까지만 보이게 하겠다.


protectred function drawMain ( ) : void

{

var g: Graphics = this.graphics;


g.clear();

g.beginFill(_filloColor, _fillAlpha);

g.lineStyle(_lineThickness, _lineColor, _lineAlpha);


drawSub();


g.endFill(); :  


}


protected function drawSeb() : void

{



}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Circle.as


package com.timo.display

{

public class Circle

{

private var _radius : Number = 30;


public function Circle( value : Number ) 

{

_radius = value;

drawMain();

}


override protected function drawSub(): void

{

var g: Graphics = this.graphics;

g.drawCircle( 0,0,_radius);

}

}

}


       //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Rect.as


package com.timo.display

{

public class Rect extend BaseShape

{

private var _width : Number = 0;

private var _Height : Number = 0;



public function Rect ( width :  Number. height : Number ) 

{

_width  = width;

_height = height;

drawMain();

}


override protected function drawSub() : void

{

var g: Graphics = this.graphics;

g.drawRect ( 0,0,_width. _height);

}

}

}


 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


RoundRect.as


package com.timo.display

{

public class RoundRect extends BaseShape

{


private var _width : Number = 0;

private var _height : Number = 0;

private var _radius : Number = 0;


public function RoundRect( width : Number. height : Number. radius : Number )

{

_width = width;

_height = height;

_radius = radius;

drawMain();

}


override protected function drawSub () : void

{

var g: Graphics = this.graphics;

g.roundRect(0,0,_width, _height, _radius, _radius); 

}

}

}


 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Polygon.as


package com.timo.display

{


public class Polygon extends BaseShape

{

private var _n : int = 0;

private var _radius : Number = 0;


public function Polygon( n : int, radius : Number)

{

_n = n ; 

_radius = radius;

drawMain();


}


override protected function drawSub () : void

{

for ( var i : int = 0 ; i < _n ; i++)

{

var xx : Number = 100 + _radius * Math.cos( i / _n * 2 * Math.PI - Math.Pi /2 );

var yy : Number = 100 + _radius * Math.sin( i / _n * 2 * Math.PI - Math.PI /2 ) ;


if( i ==0 )

{

g.moveTo(xx,yy);

}else{

g.lineTo(xx,yy);

}

}

}

} //class

} //package












색상 코드


0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

사람눈이 256 단계 이상으로 나눈 인접한 두 값의 밝기는 구별하지 못한다.


 따라서 색의 단계는 255,255,255로 표기


0xAARRGGBB 로  0X Alpha.Red.Green,Blue 로 표기



profile

it leader

@dev__pixui

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!