7.9. Fading a Movie Clip
Problem
You want to programmatically fade a movie clip.
Solution
Create a fade( )
method that
uses the onEnterFrame(
)
event handler method and the movie
clip’s _alpha
property.
Discussion
You can set the value of a movie clip’s
_alpha
property
to adjust its transparency. Thus, if you
want to set a movie clip’s transparency to a single
value, you can do so with a single statement such as:
// Set the movie clip's transparency to 50%. myMovieClip._alpha = 50;
You can repeat this process to achieve a fading effect on the same
movie clip. You should do this by placing the property assignment
statement within the onEnterFrame( )
method of
the movie clip:
// Repeatedly decrement the _alpha
of the movie clip.
myMovieClip.onEnterFrame = function ( ) {
this._alpha--;
};
The valid range for the _alpha
property of a movie
clip is from 0 (completely transparent) to 100 (fully opaque).
However, because ActionScript allows you to set the value outside
that range, use an if
statement to safeguard
against inappropriate values:
// Continuously decrement _alpha
, provided it is greater than 0.
myMovieClip.onEnterFrame = function ( ) {
this._alpha--;
if (this._alpha <= 0) {
delete this.onEnterFrame;
}
};
The preceding code works, but it is not completely efficient and has
the potential for some minor errors. The reason is that the working
range for _alpha
is from 0 to 100, but internally Flash converts all the numbers to a range of 0 to 255. As a result, you can end up with incorrect ...
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.