Provided by: libswf-perl_0.4.5-1.2ubuntu7_amd64 bug

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