Recipe 4.9 Filling a Shape with a Solid or Translucent Color

4.9.1 Problem

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

4.9.2 Solution

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

4.9.3 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.

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.

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

The beginFill( ) method requires two parameters:


The RGB value to use for the fill


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( ).

4.9.4 See Also

Recipe 3.2 and Recipe 4.10

    Part I: Local Recipes
    Part II: Remote Recipes