4.9. Filling a Shape with a Solid or Translucent Color

Problem

You want to draw a shape and fill it with a solid or translucent color at runtime.

Solution

Use the beginFill( ) and endFill( ) methods to initiate and close a shape drawn at runtime.

Discussion

To draw a filled shape, call beginFill( ) prior to any other drawing methods, including the custom methods you have defined such as drawCircle( ) and drawPolygon( ). Invoke endFill( ) after calling other drawing methods to create the shape.

Tip

You cannot apply a fill to an existing shape drawn at authoring time or runtime. You must invoke beginFill( ) before drawing the shape to be filled.

This example creates a solid blue circle with a radius of 100 pixels:

_root.createEmptyMovieClip("shape_mc", 1);

// Tell ActionScript to begin a solid, blue fill.
shape_mc.beginFill(0x0000FF, 100);

// Invoke a custom drawing method, such as drawCircle(  ), or invoke lineTo(  ) or
// curveTo(  ) multiple times to create a closed shape.
shape_mc.drawCircle(100);

// Call endFill(  ) to close the shape after other drawing methods have been called.
shape_mc.endFill(  );

The beginFill( ) method requires two parameters:

fillColor

The RGB value to use for the fill

alpha

The value between 0 (transparent) and 100 (opaque) that controls the opacity

To create a translucent, filled shape, specify an alpha less than 100. If alpha is 0, the shape will appear unfilled. Don’t forget to define a line style if you want the outline to be visible.

The endFill( ) method does not require any parameters. It simply ends the fill initiated with beginFill( ) or beginGradientFill( ). To avoid unexpected results, ensure that the pen returns to the starting point to complete the shape before invoking endFill( ).

See Also

Recipe 3.2 and Recipe 4.10

Get Actionscript Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.