Java Reference
In-Depth Information
var anim = Timeline{
repeatCount: Timeline.INDEFINITE;
autoReverse: true;
keyFrames: KeyFrame{
time: 2s
values: red => 1.0;
}
}
anim.play();
}
Listing 8-5 shows a
Rectangle
that has its
fill
property bound to the function
createLinearGradient
, which is a sequence of
Stops
. The sequence of
Stops
is composed of a
Stop
at
offset
0.0 and the color
Color.BLUE
and a second stop defined by the function
createStop
. The function
createStop
takes a
color
and an
offset
. In this case the
Color
passed to
createStop
is also defined by the
function
createColor
, as shown in Listing 8-3. Since
LinearGradient
,
Stop
, and
Color
are immutable
classes, these helper functions must be created to allow us to make new ones during the course of the
animation. Listing 8-6 shows the function
createStop
, and Listing 8-7 shows the function
createLinearGradient
.
Listing 8-6.
createStop
public function createStop(color:Color,offset:Number):Stop{
return Stop{
color: color;
offset: zeroToOne(offset)
}
}
In Listing 8-6 we see that the function
createStop
simply creates a new
Stop
from the parameters
passed in. Again, the function
zeroToOne
from Listing 8-4 is used to normalize the
offset
.
Listing 8-7.
createLinearGradient+
public function createLinearGradient(stops:Stop[]):LinearGradient{
return LinearGradient{
startX: 0
endX: 1
startY: 0
endY: 0
proportional: true
stops: sortStops(stops);
}
}
Listing 8-7 shows the function
createLinearGradient
, which creates a
LinearGradient
from the
Stops
passed in. The
Stops
are first sorted to make sure they are in the correct order. When defining an
animation where the
offset
values can change, it is good to know they will be sorted before being used
to create a new
LinearGradient
, as
LinearGradient
will throw an exception if the
Stops
are in the wrong