|
||||||||||||||
. . . . . |
Deamothul's Shape Classes for Flash Actionscript 2.0
These classes were written by my buddy Deamothul in response to my Graphics class.
I have put them up to show where you can go with AS2.
class Shapes extends MovieClip{
var mc;
var color:String;
var fill:String;
var thick:Number;
function Shapes(_mcString:String,_dep:Number){
mc = _root.createEmptyMovieClip(_mcString,_dep);
color = "0x0000ff";
fill = "0xff0000";
thick = 1;
}
public function setColor(_color:String){
color = _color;
}
public function setFill(_fill:String){
fill = _fill;
}
public function setThick(_thick:Number){
thick = _thick;
}
function drawLine(x1:Number, y1:Number, x2:Number, y2:Number) {
mc.lineStyle(thick, color);
mc.moveTo(x1, y1);
mc.lineTo(x2, y2);
}
}
Flash Tutorials in Video Format -
Watch them now at LearnFlash.com Sub class Circle
class Circle extends Shapes{
var radius:Number;
//CONSTRUCTOR
function Circle(_mcString:String,_dep:Number){
super(_mcString,_dep);//call the super class
trace("circle class initiated")
}
//Member makes a shape 22.5 is a circle, made via the super class :)
function filledCircle(r:Number,x:Number,y:Number,styleMaker:Number){
mc.moveTo(x+r,y);
mc.lineStyle(thick, color);
mc.beginFill(fill)
var style:Number = Math.tan(styleMaker*Math.PI/180);
for (var angle:Number=45;angle<=360;angle+=45){
var endX:Number=r * Math.cos(angle*Math.PI/180);
var endY:Number=r * Math.sin(angle*Math.PI/180);
var cX:Number= endX + r* style * Math.cos((angle-90)*Math.PI/180);
var cY:Number= endY + r* style * Math.sin((angle-90)*Math.PI/180);
mc.curveTo(cX+x,cY+y,endX+x,endY+y);
}
mc.endFill();
}
//GRADIENT SHAPE
function gradientCircle(r:Number,x:Number,y:Number,styleMaker:Number,
col1:Number,col2:Number,fa1:Number,fa2:Number,matrixX:Number,
matrixY:Number,matrixW:Number,matrixH:Number){
mc.lineStyle(thick, color);
mc.moveTo(x+r,y);
var colors:Array = [col1 ,col2];
var alphas:Array = [ fa1, fa2 ];
var ratios:Array = [ 7, 0xFF ];
var matrix:Object = { matrixType:"box", x:matrixX, y:matrixY,
w:matrixW, h:matrixH, r:(45/180)*Math.PI };
mc.beginGradientFill( "linear", colors, alphas, ratios, matrix );
var style:Number = Math.tan(styleMaker*Math.PI/180);
for (var angle:Number=45;angle<=360;angle+=45){
var endX:Number = r * Math.cos(angle*Math.PI/180);
var endY:Number = r * Math.sin(angle*Math.PI/180);
var cX:Number = endX + r* style * Math.cos((angle-90)*Math.PI/180);
var cY:Number = endY + r* style * Math.sin((angle-90)*Math.PI/180);
mc.curveTo(cX+x,cY+y,endX+x,endY+y);
}
mc.endFill()
}
}//ends class
Sub class Hexagon
class Hexagon extends Shapes{
function Hexagon(_mcString:String,_dep:Number){
super(_mcString,_dep);
}
// Makes a north south Hexagon
public function nonFilledHexagon_NS(hexRadius:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.moveTo(0,(sideA+sideC))
mc.lineTo(0,sideA);
mc.lineTo(sideB,0);
mc.lineTo((2*sideB),sideA);
mc.lineTo((2*sideB),sideA+sideC);
mc.lineTo(sideB,(2*sideC));
mc.lineTo(0,sideA+sideC);
};
// Makes a east west Hexagon
public function nonFilledHexagon_EW(hexRadius:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.moveTo(0,sideB)
mc.lineTo(sideA,0);
mc.lineTo((sideA+sideC),0);
mc.lineTo((2*sideC),sideB);
mc.lineTo((sideA+sideC),(2*sideB));
mc.lineTo(sideA,(2*sideB));
mc.lineTo(0,sideB);
};
//makes a nort south filled Hexagon
public function filledHexagon_NS(hexRadius:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.beginFill(fill)
mc.moveTo(0,(sideA+sideC))
mc.lineTo(0,sideA);
mc.lineTo(sideB,0);
mc.lineTo((2*sideB),sideA);
mc.lineTo((2*sideB),sideA+sideC);
mc.lineTo(sideB,(2*sideC));
mc.lineTo(0,sideA+sideC);
mc.endFill()
};
// Makes a east west Hexagon filled
public function filledHexagon_EW(hexRadius:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.beginFill(fill)
mc.moveTo(0,sideB)
mc.lineTo(sideA,0);
mc.lineTo((sideA+sideC),0);
mc.lineTo((2*sideC),sideB);
mc.lineTo((sideA+sideC),(2*sideB));
mc.lineTo(sideA,(2*sideB));
mc.lineTo(0,sideB);
mc.endFill()
};
//makes a nort south Garient filled Hexagon
public function gradientHexagon_NS(hexRadius:Number,col1:Number,
col2:Number,fa1:Number,fa2:Number,matrixX:Number,
matrixY:Number,matrixW:Number,matrixH:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.moveTo(0,(sideA+sideC))
var colors:Array = [col1 ,col2];
var alphas:Array = [ fa1, fa2 ];
var ratios:Array = [ 7, 0xFF ];
var matrix:Object={ matrixType:"box", x:matrixX, y:matrixY,
w:matrixW, h:matrixH, r:(45/180)*Math.PI };
mc.beginGradientFill("linear",colors,alphas,ratios,matrix );
mc.lineTo(0,sideA);
mc.lineTo(sideB,0);
mc.lineTo((2*sideB),sideA);
mc.lineTo((2*sideB),sideA+sideC);
mc.lineTo(sideB,(2*sideC));
mc.lineTo(0,sideA+sideC);
mc.endFill()
};
// hexagon_sub4.gradientHexagon_NS(60,0xaa0000,
// 0xaa0000,20,60,100,100,50,50)
// Makes a east west Hexagon gradient filled
public function gradientHexagon_EW(hexRadius:Number,
col1:Number,col2:Number,
fa1:Number,fa2:Number,
matrixX:Number,matrixY:Number,
matrixW:Number,matrixH:Number){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sin(62)* sideC;
mc.lineStyle(thick,color,100)
mc.beginFill(fill)
mc.moveTo(0,sideB);
var colors:Array = [col1 ,col2];
var alphas:Array = [ fa1, fa2 ];
var ratios:Array = [ 7, 0xFF ];
var matrix:Object = { matrixType:"box", x:matrixX,
y:matrixY, w:matrixW, h:matrixH, r:(45/180)*Math.PI };
mc.beginGradientFill( "linear", colors, alphas, ratios, matrix );
mc.lineTo(sideA,0);
mc.lineTo((sideA+sideC),0);
mc.lineTo((2*sideC),sideB);
mc.lineTo((sideA+sideC),(2*sideB));
mc.lineTo(sideA,(2*sideB));
mc.lineTo(0,sideB);
mc.endFill()
};
// hexagon_sub4.gradientHexagon_EW(60,0xaa0000,
// 0xaa0000,20,60,100,100,50,50)
public function nonFilledHexagon_style2(hexRadius:Number, startX, startY){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sqrt((hexRadius*hexRadius) -
(0.5*hexRadius)* (0.5*hexRadius));
mc.lineStyle(thick,color,100)
mc.moveTo(startX,startY)
mc.lineTo(startX,sideC+ startY);
mc.lineTo(sideB+startX,startY+sideA+sideC); // bottom point
mc.lineTo(2*sideB + startX , startY + sideC);
mc.lineTo(2*sideB + startX , startY);
mc.lineTo(sideB + startX, startY - sideA);
mc.lineTo(startX, startY);
};
//usage would be drawHexagon(sideLength, startX , start Y)
public function filledHexagon_style2(hexRadius:Number, startX, startY){
var sideC:Number=hexRadius;
var sideA:Number = 0.5 * sideC;
var sideB:Number=Math.sqrt((hexRadius*hexRadius) -
(0.5*hexRadius)* (0.5*hexRadius));
mc.lineStyle(thick,color,100)
mc.beginFill(fill);
mc.moveTo(startX,startY)
mc.lineTo(startX,sideC+ startY);
mc.lineTo(sideB+startX,startY+sideA+sideC); // bottom point
mc.lineTo(2*sideB + startX , startY + sideC);
mc.lineTo(2*sideB + startX , startY);
mc.lineTo(sideB + startX, startY - sideA);
mc.lineTo(startX, startY);
mc.endFill();
};
//usage would be fillHexagon(sideLength, startX , start Y)
};//class ends
Sub class Line
class Line extends Shapes{
function Line(_mcString:String,_dep:Number){
super(_mcString,_dep);
};
//A LINE:
public function drawLine(x1:Number, y1:Number,
x2:Number, y2:Number) {
mc.lineStyle(thick, color);
mc.moveTo(x1, y1);
mc.lineTo(x2, y2);
};
//A CURVED LINE:
function drawCurve(startX:Number,
startY:Number,curveControlX:Number,
curveControlY:Number,endX:Number,endY:Number){
mc.lineStyle(thick,color);
mc.moveTo(startX,startY);
mc.curveTo(curveControlX,curveControlY,endX,endY);
};
}
Sub class Square
class Square extends Shapes{
function Square(_mcString:String,_dep:Number){
super(_mcString,_dep);
}
//A NON FILLED RECTANGLE
public function nonFilledSquare(x1:Number, y1:Number,
width:Number, height:Number) {
mc.lineStyle(thick, color);
mc.moveTo(x1, y1);
mc.lineTo(x1+width, y1);
mc.lineTo(x1+width, y1+height);
mc.lineTo(x1, y1+height);
mc.lineTo(x1, y1);
}
//FILLED RECTANGLE
public function filledSquare(x1:Number,
y1:Number, width:Number, height:Number) {
mc.lineStyle(thick, color);
mc.moveTo(x1, y1);
mc.beginFill(fill);
mc.lineTo(x1+width, y1);
mc.lineTo(x1+width, y1+height);
mc.lineTo(x1, y1+height);
mc.lineTo(x1, y1);
mc.endFill();
}
//GRADIENT RECTANGLE
public function gradientSquare(x1:Number,
y1:Number, width:Number, height:Number,
col1:Number,col2:Number,fa1:Number,
fa2:Number,matrixX:Number,matrixY:Number,
matrixW:Number,matrixH:Number){
mc.lineStyle(thick,color);
var colors:Array = [col1 ,col2];
var alphas:Array = [ fa1, fa2 ];
var ratios:Array = [ 7, 0xFF ];
var matrix:Object = { matrixType:"box",
x:matrixX, y:matrixY,
w:matrixW, h:matrixH, r:(45/180)*Math.PI };
mc.moveTo(x1,y1);
mc.beginGradientFill( "linear", colors,
alphas, ratios, matrix );
mc.lineTo(x1+width, y1);
mc.lineTo(x1+width, y1+height);
mc.lineTo(x1, y1+height);
mc.lineTo(x1, y1);
mc.endFill();
}
}
Sub class Triangle
class Triangle extends Shapes{
function Triangle(_mcString:String,_dep:Number){
super(_mcString,_dep);
}
function nonFilledTriangle(x1:Number,y1:Number,
x2:Number,y2:Number,x3:Number,y3:Number){
mc.lineStyle(thick,color);
mc.moveTo(x1,y1);
mc.lineTo(x2,y2);
mc.lineTo(x3,y3);
mc.lineTo(x1,y1);
};
//e.g nonFilledTriangle(0,0,50,-100,100,0);
function filledTriangle(x1:Number,y1:Number,
x2:Number,y2:Number,x3:Number,y3:Number){
mc.lineStyle(thick,color);
mc.moveTo(x1,y1);
mc.beginFill(fill)
mc.lineTo(x2,y2);
mc.lineTo(x3,y3);
mc.lineTo(x1,y1);
mc.endFill();
};
//e.g nonFilledTriangle(0,0,50,-100,100,0);
function gradientTriangle(x1:Number,
y1:Number,x2:Number,y2:Number,x3:Number,
y3:Number,col1:Number,col2:Number,
fa1:Number,fa2:Number,matrixX:Number,
matrixY:Number,matrixW:Number,matrixH:Number){
mc.lineStyle(thick,color);
mc.moveTo(x1,y1);
var colors:Array = [col1 ,col2];
var alphas:Array = [ fa1, fa2 ];
var ratios:Array = [ 7, 0xFF ];
var matrix:Object = { matrixType:"box", x:matrixX, y:matrixY,
w:matrixW, h:matrixH, r:(45/180)*Math.PI };
mc.beginGradientFill("linear",colors,alphas,ratios,matrix );
mc.lineTo(x2,y2);
mc.lineTo(x3,y3);
mc.lineTo(x1,y1);
mc.endFill();
};
//gradientTriangle(0,0,50,-100,100,0,
//0xaa0000,0xaa0000,20,60,100,100,50,50)
};//ends class
|
|
||||||||||||
|
. | Home | Flash MX | Actionscript 2.0 | Flash 3D | Flash 8 | Flash Database | Flash Mobile | Flash CS3 | Java For Kids | Video Course | General Video | Photoshop | Web Design | Digital Photography | Games | free backgrounds | Resume | Streaming Video | Students Work | Links | Contact me | sitemap | reviews | . . |
||||||||||||||