Difference between revisions of "MovieClip"
(added 2 missing properties) |
|||
(10 intermediate revisions by 3 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]][[File:Platform linux.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2011.6<br/> |
− | ''' | + | '''Inherits from:''' [[Sprite]]<br/> |
− | === | + | === Description === |
− | The | + | The MovieClip class inherits from the following classes: [[Sprite]] > [[EventDispatcher]]. |
− | The | + | 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, ending frame, sprite and optional tweening parameters | + | 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 | + | 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: | The following properties can be tweened: | ||
Line 26: | Line 25: | ||
*''anchorY'' | *''anchorY'' | ||
− | Additionally | + | 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: |
− | |||
− | The following easing functions can be used: | ||
* ''"inBack"'' | * ''"inBack"'' | ||
* ''"outBack"'' | * ''"outBack"'' | ||
Line 61: | Line 58: | ||
* ''"inOutSine"'' | * ''"inOutSine"'' | ||
− | + | === Examples === | |
+ | <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 84: | 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 95: | 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 106: | 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 === |
− | [[ | + | [[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: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:gotoAndPlay]] ''goes to the specified frame and starts playing''<br/><!--GIDEROSMTD:MovieClip:gotoAndPlay(frame,reverse) goes to the specified frame and starts playing--> |
− | [[ | + | [[MovieClip:gotoAndStop]] ''goes to the specified frame and stops''<br/><!--GIDEROSMTD:MovieClip:gotoAndStop(frame) goes to the specified frame and stops--> |
− | [[ | + | [[MovieClip:play]] ''starts playing the movie clip''<br/><!--GIDEROSMTD:MovieClip:play(reverse) starts playing the movie clip--> |
− | [[ | + | [[MovieClip:isPlaying]] ''returns whether or not current clip is playing''<br/><!--GIDEROSMTD:MovieClip:isPlaying() eturns whether or not current clip is playing--> |
− | [[ | + | [[MovieClip:setGotoAction]] ''sets a "go to" action to the specified frame''<br/><!--GIDEROSMTD:MovieClip:setGotoAction(frame,destframe) sets a "go to" action to the specified frame--> |
+ | [[MovieClip:setReverseAction]] ''sets a "reverse" action to the specified frame''<br/><!--GIDEROSMTD:MovieClip:setReverseAction(frame) sets a "reverse" action to the specified frame--> | ||
+ | [[MovieClip:setStopAction]] ''sets a "stop" action to the specified frame''<br/><!--GIDEROSMTD:MovieClip:setStopAction(frame) sets a "stop" action to the specified frame--> | ||
+ | [[MovieClip:stop]] ''stops playing the movie clip''<br/><!--GIDEROSMTD:MovieClip:stop() stops playing the movie clip--> | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
− | === | + | |
− | <!--[[ | + | === Events === |
− | [[ | + | <!--[[Event.COMPLETE]]<br/>--> |
− | <!-- GIDEROSEVT:Event.COMPLETE complete--> | + | [[MovieClip_Event.COMPLETE]]<br/><!-- GIDEROSEVT:Event.COMPLETE movie clip complete event--> |
− | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
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 |