Provided by: libswf-perl_0.4.5-1ubuntu5_amd64
NAME
SWF::Shape - Shape class
SYNOPSIS
use SWF::Shape; $shape = new SWF::Shape(); $dispitem = $movie->add($shape);
DESCRIPTION
SWF::Shape is the fundamental object of a flash movie.
METHODS
new SWF::Shape() Creates a new Shape object. $shape->movePenTo($x, $y) Move the Shape's (imaginary) pen location to ($x, $y) in the Shape's coordinate space. $shape->movePen($dx, $dy) Add ($dx, $dy) to the Shape's pen current location. $x = $shape->getPenX() Returns Pen's x-coordinates $y = $shape->getPenY() Returns Pen's y-coordinates ($x, $y) = $shape->getPen() Returns Pen's (x,y) coordinates $shape->drawLineTo($x, $y) Draw a line (using current line style, set by one of the setLine...() methods) from the current position to ($x, $y). $shape->drawLine($dx, $dy) Draw a line (using current line style set by one of the setLine...() methods) from the current position to displacement ($dx, $dy). $shape->drawCurveTo($controlx, $controly, $anchorx, $anchory) Draw a quadratic curve (using current line style, set by one of the setLine...() methods) from current pen position to ($anchorx, $anchory) using control point ($controlx, $controly). $shape->drawCurve($controldx, $controly, $anchorx, $anchory) Draw a quadratic curve (using current line style, set by one of the setLine...() methods) from current pen position to displacement ($anchordx, $anchordy) using displacement control point ($controldx, $controldy). $shape->drawCubicTo($bx,$by,$cx,$cx,$dx,$dy) $shape->drawCubic($bx,$by,$cx,$cx,$dx,$dy) Draw a cubic curve (using current line style). [ToDo: Add some more details and demo code] $shape->setLine($width, $r, $g, $b [,$a]) Sets Shape's line width and color (RGB). To remove the Shape's line style call $shape->hideLine(). The used line width for drawing is a product of $width argument and scale value set, see SWF::setScale($scale). Arguments $r, $g, $b stand for red, green and blue color parts, optional $a for alpha value. $shape->setLineStyle($width, $r, $g, $b [,$a]) This OLD deprecated method is documented here only for compatibility reason. The line width -in TWIPS units- is independent of Ming scale value (more bug than feature). $shape->setLine2($width, $r, $g, $b ,$a, $flags, $miterLimit) A new method available for SWF version >=8 setting shape's line width and color (RGBA) with additional control flags (see below) and miter limit. To remove the Shape's line style call $shape->hideLine(). The used line width for drawing is a product of $width argument and scale value set, see SWF::setScale($scale). Arguments $r, $g, $b, $a stand for red, green, blue and alpha color parts. $a is not optional here. Available flags are: Line cap style: select one of the following flags (default is round cap style) SWF_LINESTYLE_CAP_ROUND SWF_LINESTYLE_CAP_NONE SWF_LINESTYLE_CAP_SQUARE Line join style: select one of the following flags (default is round join style) SWF_LINESTYLE_JOIN_ROUND SWF_LINESTYLE_JOIN_BEVEL SWF_LINESTYLE_JOIN_MITER Scaling flags: disable horizontal / vertical scaling SWF_LINESTYLE_FLAG_NOHSCALE SWF_LINESTYLE_FLAG_NOVSCALE Enable pixel hinting to correct blurry vertical / horizontal lines: all anchors will be aligned to full pixels SWF_LINESTYLE_FLAG_HINTING Disable stroke closure: if no-close flag is set caps will be applied instead of joins. SWF_LINESTYLE_FLAG_NOCLOSE End-cap style: default round SWF_LINESTYLE_FLAG_ENDCAP_ROUND SWF_LINESTYLE_FLAG_ENDCAP_NONE SWF_LINESTYLE_FLAG_ENDCAP_SQUARE If join style is SWF_LINESTYLE_JOIN_MITER a miter limit factor must be set. Miter max length is then calculated as: max miter len = miter limit * width. If join style is not miter, this value will be ignored. $shape->setLineStyle2($width, $r, $g, $b ,$a, $flags, $miterLimit) This OLD deprecated method is mentioned here only for compatibility reason, you'd better use setLine2(). $shape->setLine2Filled($width, $fill, $flags, $miterLimit) A new method available for SWF version >=8 setting shape's line width and fill style, $fill is an object of SWF::Fill class. For other argument details see item $shape->setLine2(). $shape->setLine2StyleFilled($width, $fill, $flags, $miterLimit) This OLD deprecated method is mentioned here only for compatibility reason, you'd better use setLine2Filled(). $shape->hideLine() Remove the Shape's line, i.e. make lines painted after this method call invisible. $fill = $shape->addSolidFill($r, $g, $b [,$a]) $fill = $shape->addFill($r, $g, $b [,$a]) Adds a solid fill to $shape list of fill styles and returns an SWF::Fill object. This object is used with the "setLine()" method described below. The default value of $a is 0. $fill = $shape->addBitmapFill($bitmap [,FLAG]) $fill = $shape->addFill($bitmap [,FLAG]) Adds a bitmap fill to $shape list of fill styles and returns an SWF::Fill object. This object is used with the "setLine()" method described below. $bitmap is an SWF::Bitmap object while FLAG argument can be SWFFILL_TILED_BITMAP or SWFFILL_CLIPPED_BITMAP. Make sure to import these constants to your package before useing it, i.e. use the following statement: use SWF::Fill <list of constants>; The default value of FLAG is SWFFILL_TILED_BITMAP. $fill = $shape->addGradientFill($gradient [,FLAG]) $fill = $shape->addFill($gradient [,FLAG]) Adds a gradient fill to $shape list of fill styles and returns an SWF::Fill object. This object is used with the "setLine()" method described below. $gradient is an SWF::Gradient object while FLAG argument can be SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT, plus SWFFILL_FOCAL_GRADIENT for V8. Make sure to import these constants to your package before useing it, i.e. use the following statement: use SWF::Fill <list of constants>; The default value of FLAG is SWFFILL_LINEAR_GRADIENT. $shape->xs_setLeftFill($fill) $shape->setLeftFill($fill) Sets the fill on the left side of the edge. $fill is an SWF::Fill object returned from "addFill" method. $shape->setLeftFill($r, $g, $b [,$a]) This is another way of saying: my $fill = $shape->addSolidFill($r, $g, $b [,$a]); $shape->setLeftFill($fill); $shape->xs_setRightFill($fill) $shape->setRightFill($fill) Sets the fill on the right side of the edge. $fill is an SWF::Fill object returned from "addFill" method. $shape->setRightFill($r, $g, $b [,$a]) This is another way of saying: my $fill = $shape->addSolidFill($r, $g, $b [,$a]); $shape->setRightFill($fill); $shape->drawCircle($r) Draws a circle with radious $r, also changes current position. $shape->drawArc($r, $startAngle, $endAngle) Draws an arc with radious $r form start to end. $shape->useVersion(version) This function allows to set the shapes version information. The version is only a hint. If necessary the version is upgraded. Valid values: are 3 and 4. Value of 3 is default, but 4 if linestyle2 is used. Some shape features are available only for shape version 4 and SWF file version>=8. One example is the usage of focal gradients: $g = new SWF::Gradient(); $g->setFocalPoint(-0.9); $g->addEntry(0.000000,0xff,0x00,0x00,0xff); $g->addEntry(1.000000,0x00,0xff,0x00,0xff); $shape->useVersion(4); $shape->addGradientFill($g,SWFFILL_FOCAL_GRADIENT); $version = $shape->getVersion() Gets the current shape object version. $shape->dumpOutline() Returns a string describing shape's outline. After drawing in a shape expect getting a multi-line string like: moveto 368,5 curveto 348,5 327,1 curveto 307,-3 284,-15 etc. etc. $shape->end() Stops drawing on this shape and make the shape complete. Further method calls won't produce any lines, circles etc. By using this demo code later no circle is painted: $shape->drawLineTo(300,300); $shape->end(); $shape->drawCircle(200); $shape->drawGlyph($font, $cnumber [, $size]) Draws character of $cnumber of $font. Also Unicode fonts are possible, if the font does provide that, just like next example: $font=new SWF::Font("Thai-Bold.fdb"); $sh->drawGlyph($font, 0x0E44, 44); $shape->drawCharacterBounds($character) Draws an outer rectangle fitting for $character, an object of SWF::Character. $shape->setRenderHintingFlags(flags) Set render hinting flags. Possible values are SWF::Constants::SWF_SHAPE_USESCALINGSTROKES and SWF::Constants::SWF_SHAPE_USENONSCALINGSTROKES This method also will set version of this SWF::Shape object to 4.
AUTHOR
Soheil Seyfaie (soheil at users.sourceforge.net), Albrecht Kleine
SEE ALSO
SWF, SWF::Bitmap, SWF::Button, SWF::Constants, SWF::DisplayItem, SWF::Fill, SWF::Font, SWF::Gradient, SWF::Morph, SWF::Movie, SWF::MovieClip, SWF::TextField, SWF::Text, SWF::Character