MovieClip
Supported platforms: ![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Available since: Gideros 2011.6
Inherits from: Sprite
Description
The MovieClip class inherits from the following classes: Sprite > EventDispatcher.
The MovieClip class is used to create static timedlined animations. The timeline parameters are given as an array.
Each array element specifies one timeline element and consists of: the starting frame (frame numbers start from 1), the ending frame, a sprite and an optional tweening parameters.
When a MovieClip object finishes playing (by reaching its final frame or a frame with stop action), it dispatches an Event.COMPLETE event.
The following properties can be tweened:
- x
 - y
 - rotation
 - scale
 - scaleX
 - scaleY
 - alpha
 - anchorX
 - anchorY
 
Additionally MovieClip uses a function to tween properties. If you override the default tween function then you can tween this parameter too. The following easing functions can be used:
- "inBack"
 - "outBack"
 - "inOutBack"
 - "inBounce"
 - "outBounce"
 - "inOutBounce"
 - "inCircular"
 - "outCircular"
 - "inOutCircular"'
 - "inCubic"
 - "outCubic"
 - "inOutCubic"
 - "inElastic"
 - "outElastic"
 - "inOutElastic"
 - "inExponential"
 - "outExponential"
 - "inOutExponential"
 - "linear"
 - "inQuadratic"
 - "outQuadratic"
 - "inOutQuadratic"
 - "inQuartic"
 - "outQuartic"
 - "inOutQuartic"
 - "inQuintic"
 - "outQuintic"
 - "inOutQuintic"
 - "inSine"
 - "outSine"
 - "inOutSine"
 
Examples
local sprite = Pixel.new(0x0, 1, 32, 32)
local sprite1 = Pixel.new(0xff0000, 1, 32, 32)
local sprite2 = Pixel.new(0x0000ff, 1, 32, 32)
-- construct a 100 frame animation where x coordinate of sprite tweens from 0 to 200 linearly
local mc = MovieClip.new{
	{1, 100, sprite, {x = {0, 200, "linear"}}},
}
--mc:play() -- play only once
mc:setGotoAction(100, 1) -- play in a loop
stage:addChild(mc)
-- construct a 100 frame animation where x coordinate of sprite is 50 (constant) and 
-- y coordinate of sprite tweens from 50 to 150 by using inBounce function
local mc = MovieClip.new{
	{1, 100, sprite, {x = 50, y = {50, 150, "inBounce"}}},
}
--mc:play() -- play only once
mc:setGotoAction(100, 1) -- play in a loop
stage:addChild(mc)
-- construct a 200 frame animation where sprite1 and sprite2 tweens differently
-- here sprite1 is visible between frames [1, 150]
-- and sprite2 is visible between frames [100, 200]
local mc = MovieClip.new{
	{1, 100, sprite1, {x = {0, 200, "linear"}}},
	{50, 150, sprite1, {y = {0, 100, "linear"}, alpha = {0, 1, "easeOut"}}},
	{100, 200, sprite2, {x = {0, 200, "linear"}}},
}
--mc:play() -- play only once
mc:setGotoAction(200, 1) -- play in a loop
stage:addChild(mc)
-- construct a looping 6 frame animation where each frame is a different sprite
local mc = MovieClip.new{
	{1, 1, frame1},	
	{2, 2, frame2},	
	{3, 3, frame3},	
	{4, 4, frame4},	
	{5, 5, frame5},	
	{6, 6, frame6},
}
mc:setGotoAction(6, 1)	-- if the animation reaches frame 6 then go to frame 1
stage:addChild(mc)
						
-- construct a looping 6 frame animation playing 5 times slower than the previous example
local mc = MovieClip.new{
	{1, 5, frame1},	
	{5, 10, frame2},	
	{11, 15, frame3},	
	{16, 20, frame4},	
	{21, 25, frame5},	
	{26, 30, frame6},
}
mc:setGotoAction(30, 1)	-- if the animation reaches frame 30 then go to frame 1
stage:addChild(mc)
MethodsMovieClip.getTweenFunction retrieves the specified tween/easing function MovieClip:clearAction clears the action at the specified frame  | 
EventsConstants |