O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required