Difference between revisions of "MovieClip"

From GiderosMobile
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
<languages />
 
 
<!-- GIDEROSOBJ:MovieClip -->
 
<!-- GIDEROSOBJ:MovieClip -->
'''<translate>Supported platforms</translate>:''' [[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/>
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
'''Available since:''' Gideros 2011.6<br/>
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/Sprite|Sprite]]<br/>
+
'''Inherits from:''' [[Sprite]]<br/>
  
=== <translate>Description</translate> ===
+
=== Description ===
The [[Special:MyLanguage/MovieClip|MovieClip]] class inherits from the following classes: [[Special:MyLanguage/Sprite|Sprite]] > [[Special:MyLanguage/EventDispatcher|EventDispatcher]].
+
The MovieClip class inherits from the following classes: [[Sprite]] > [[EventDispatcher]].
  
The [[Special:MyLanguage/MovieClip|MovieClip]] class is used create static timedlined animations. The timeline parameters are given as an array.
+
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. Frame numbers start from 1.
+
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 [[Special:MyLanguage/MovieClip|MovieClip]] object finishes it playing (by reaching its final frame or a frame with stop action), it dispatches an [[Special:MyLanguage/Event.COMPLETE|Event.COMPLETE]] event.
+
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 23: Line 22:
 
*''scaleY''
 
*''scaleY''
 
*''alpha''
 
*''alpha''
 +
*''anchorX''
 +
*''anchorY''
  
Additionally [[Special:MyLanguage/MovieClip|MovieClip]] uses set function to tween properties, so if you override provided object's set function by adding new parameters it can accept, then you can tween those new parameters too.
+
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 59: Line 58:
 
* ''"inOutSine"''
 
* ''"inOutSine"''
  
Following examples demonstrate the possible uses of the MovieClip class.
+
=== 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)
  
=== <translate>Examples</translate> ===
 
<source lang="lua">
 
 
-- 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 82: 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 93: 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 104: 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
</source>
+
stage:addChild(mc)
 +
</syntaxhighlight>
  
 
{|-
 
{|-
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Methods</translate> ===
+
=== Methods ===
[[Special:MyLanguage/MovieClip.new|MovieClip.new]] ''<translate>creates a new MovieClip object</translate>''<br/><!-- GIDEROSMTD:MovieClip.new(timeline) creates a new MovieClip object -->
+
[[MovieClip.getTweenFunction]] ''retrieves the specified tween/easing function''<br/><!--GIDEROSMTD:MovieClip.getTweenFunction(name) retrieves the specified tween/easing function-->
[[Special:MyLanguage/MovieClip:clearAction|MovieClip:clearAction]] ''<translate>clears the action at the specified frame</translate>''<br/><!-- GIDEROSMTD:MovieClip:clearAction(frame) clears the action at the specified frame -->
+
[[MovieClip.new]] ''creates a new MovieClip object''<br/><!--GIDEROSMTD:MovieClip.new(timeline) creates a new MovieClip object-->
[[Special:MyLanguage/MovieClip:getFrame|MovieClip:getFrame]] <br/><!-- GIDEROSMTD:MovieClip:getFrame() -->
+
 
[[Special:MyLanguage/MovieClip:gotoAndPlay|MovieClip:gotoAndPlay]] ''<translate>goes to the specified frame and starts playing</translate>''<br/><!-- GIDEROSMTD:MovieClip:gotoAndPlay(frame,reverse) goes to the specified frame and starts playing -->
+
[[MovieClip:clearAction]] ''clears the action at the specified frame''<br/><!--GIDEROSMTD:MovieClip:clearAction(frame) clears the action at the specified frame-->
[[Special:MyLanguage/MovieClip:gotoAndStop|MovieClip:gotoAndStop]] ''<translate>goes to the specified frame and stops</translate>''<br/><!-- GIDEROSMTD:MovieClip:gotoAndStop(frame) goes to the specified frame and stops -->
+
[[MovieClip:getFrame]] ''gets the current frame''<br/><!--GIDEROSMTD:MovieClip:getFrame() gets the current frame-->
[[Special:MyLanguage/MovieClip:play|MovieClip:play]] ''<translate>starts playing the movie clip</translate>''<br/><!-- GIDEROSMTD:MovieClip:play(reverse) starts playing the movie clip -->
+
[[MovieClip:gotoAndPlay]] ''goes to the specified frame and starts playing''<br/><!--GIDEROSMTD:MovieClip:gotoAndPlay(frame,reverse) goes to the specified frame and starts playing-->
[[Special:MyLanguage/MovieClip:setGotoAction|MovieClip:setGotoAction]] ''<translate>sets a &quot;go to&quot; action to the specified frame</translate>''<br/><!-- GIDEROSMTD:MovieClip:setGotoAction(frame,destframe) sets a &quot;go to&quot; action to the specified frame -->
+
[[MovieClip:gotoAndStop]] ''goes to the specified frame and stops''<br/><!--GIDEROSMTD:MovieClip:gotoAndStop(frame) goes to the specified frame and stops-->
[[Special:MyLanguage/MovieClip:setReverseAction|MovieClip:setReverseAction]] ''<translate>sets a &quot;reverse&quot; action to the specified frame</translate>''<br/><!-- GIDEROSMTD:MovieClip:setReverseAction(frame) sets a &quot;reverse&quot; action to the specified frame -->
+
[[MovieClip:play]] ''starts playing the movie clip''<br/><!--GIDEROSMTD:MovieClip:play(reverse) starts playing the movie clip-->
[[Special:MyLanguage/MovieClip:setStopAction|MovieClip:setStopAction]] ''<translate>sets a &quot;stop&quot; action to the specified frame</translate>''<br/><!-- GIDEROSMTD:MovieClip:setStopAction(frame) sets a &quot;stop&quot; action to the specified frame -->
+
[[MovieClip:isPlaying]] ''returns whether or not current clip is playing''<br/><!--GIDEROSMTD:MovieClip:isPlaying() eturns whether or not current clip is playing-->
[[Special:MyLanguage/MovieClip:stop|MovieClip:stop]] ''<translate>stops playing the movie clip</translate>''<br/><!-- GIDEROSMTD:MovieClip:stop() stops playing the movie clip -->
+
[[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;"|
=== <translate>Events</translate> ===
+
 
[[Special:MyLanguage/Event.COMPLETE|Event.COMPLETE]]<br/><!-- GIDEROSEVT:Event.COMPLETE complete-->
+
=== Events ===
=== <translate>Constants</translate> ===
+
<!--[[Event.COMPLETE]]<br/>-->
 +
[[MovieClip_Event.COMPLETE]]<br/><!-- GIDEROSEVT:Event.COMPLETE movie clip complete event-->
 +
=== Constants ===
 
|}
 
|}
  
 
{{GIDEROS IMPORTANT LINKS}}
 
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 06:29, 1 October 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.pngPlatform linux.png
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)

Methods

MovieClip.getTweenFunction retrieves the specified tween/easing function
MovieClip.new creates a new MovieClip object

MovieClip:clearAction clears the action at the specified frame
MovieClip:getFrame gets the current frame
MovieClip:gotoAndPlay goes to the specified frame and starts playing
MovieClip:gotoAndStop goes to the specified frame and stops
MovieClip:play starts playing the movie clip
MovieClip:isPlaying returns whether or not current clip is playing
MovieClip:setGotoAction sets a "go to" action to the specified frame
MovieClip:setReverseAction sets a "reverse" action to the specified frame
MovieClip:setStopAction sets a "stop" action to the specified frame
MovieClip:stop stops playing the movie clip

Events

MovieClip_Event.COMPLETE

Constants