Difference between revisions of "MovieClip"
m (Text replacement - "<source" to "<syntaxhighlight") |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
<!-- GIDEROSOBJ:MovieClip --> | <!-- GIDEROSOBJ:MovieClip --> | ||
− | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]][[File:Platform linux.png]]<br/> |
'''Available since:''' Gideros 2011.6<br/> | '''Available since:''' Gideros 2011.6<br/> | ||
'''Inherits from:''' [[Sprite]]<br/> | '''Inherits from:''' [[Sprite]]<br/> | ||
Line 60: | Line 60: | ||
=== Examples === | === Examples === | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
+ | 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 | -- construct a 100 frame animation where x coordinate of sprite tweens from 0 to 200 linearly | ||
local mc = MovieClip.new{ | local mc = MovieClip.new{ | ||
− | {1, 100, sprite, {x = {0, 200, "linear"}}} | + | {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 | -- 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 | -- y coordinate of sprite tweens from 50 to 150 by using inBounce function | ||
local mc = MovieClip.new{ | local mc = MovieClip.new{ | ||
− | {1, 100, sprite, {x = 50, y = {50, 150, "inBounce"}}} | + | {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 | -- construct a 200 frame animation where sprite1 and sprite2 tweens differently | ||
Line 79: | Line 89: | ||
{100, 200, sprite2, {x = {0, 200, "linear"}}}, | {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 | -- construct a looping 6 frame animation where each frame is a different sprite | ||
Line 90: | Line 103: | ||
} | } | ||
mc:setGotoAction(6, 1) -- if the animation reaches frame 6 then go to frame 1 | 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 | -- construct a looping 6 frame animation playing 5 times slower than the previous example | ||
Line 101: | Line 115: | ||
} | } | ||
mc:setGotoAction(30, 1) -- if the animation reaches frame 30 then go to frame 1 | mc:setGotoAction(30, 1) -- if the animation reaches frame 30 then go to frame 1 | ||
− | </ | + | stage:addChild(mc) |
+ | </syntaxhighlight> | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
=== Methods === | === Methods === | ||
+ | [[MovieClip.getTweenFunction]] ''retrieves the specified tween/easing function''<br/><!--GIDEROSMTD:MovieClip.getTweenFunction(name) retrieves the specified tween/easing function--> | ||
[[MovieClip.new]] ''creates a new MovieClip object''<br/><!--GIDEROSMTD:MovieClip.new(timeline) creates a new MovieClip object--> | [[MovieClip.new]] ''creates a new MovieClip object''<br/><!--GIDEROSMTD:MovieClip.new(timeline) creates a new MovieClip object--> | ||
+ | |||
[[MovieClip:clearAction]] ''clears the action at the specified frame''<br/><!--GIDEROSMTD:MovieClip:clearAction(frame) clears the action at the specified frame--> | [[MovieClip:clearAction]] ''clears the action at the specified frame''<br/><!--GIDEROSMTD:MovieClip:clearAction(frame) clears the action at the specified frame--> | ||
[[MovieClip:getFrame]] ''gets the current frame''<br/><!--GIDEROSMTD:MovieClip:getFrame() gets the current frame--> | [[MovieClip:getFrame]] ''gets the current frame''<br/><!--GIDEROSMTD:MovieClip:getFrame() gets the current frame--> | ||
Line 119: | Line 136: | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
+ | |||
=== Events === | === Events === | ||
<!--[[Event.COMPLETE]]<br/>--> | <!--[[Event.COMPLETE]]<br/>--> |
Latest revision as of 05:29, 1 October 2023
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 |