Difference between revisions of "MovieClip"

From GiderosMobile
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''<translate>Supported platforms</translate>:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]]<br/>
+
<!-- GIDEROSOBJ:MovieClip -->
'''<translate>Available since</translate>:''' Gideros 2011.6<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>Inherits from</translate>:''' [[Special:MyLanguage/Sprite|Sprite]]<br/>
+
'''Available since:''' Gideros 2011.6<br/>
=== <translate>Description</translate> ===
+
'''Inherits from:''' [[Sprite]]<br/>
<translate><br />
 
The [[Special:MyLanguage/MovieClip|MovieClip]] class inherits from the following classes: [[Special:MyLanguage/Sprite|Sprite]] > [[Special:MyLanguage/EventDispatcher|EventDispatcher]].<br />
 
<br />
 
The [[Special:MyLanguage/MovieClip|MovieClip]] class is used create static timedlined animations. The timeline parameters are given as an array. <br />
 
Each array element specifies one timeline element and consists of the starting frame, ending frame, sprite and <br />
 
optional tweening parameters. Frame numbers start from 1.<br />
 
<br />
 
When a [[Special:MyLanguage/MovieClip|MovieClip]] object finishes it playing (by reaching its final frame or a frame with stop action), <br />
 
it dispatches an [[Special:MyLanguage/Event.COMPLETE|Event.COMPLETE]] event.<br />
 
<br />
 
The following properties can be tweened:<br />
 
<br />
 
<ul>
 
<li>''x''</li>
 
<li>''y''</li>
 
<li>''rotation''</li>
 
<li>''scale''</li>
 
<li>''scaleX''</li>
 
<li>''scaleY''</li>
 
<li>''alpha''</li>
 
</ul>
 
<br />
 
  
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.
+
=== 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.
  
<br />
+
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'''.
The following easing functions can be used:<br />
+
 
<br />
+
When a MovieClip object finishes playing (by reaching its final frame or a frame with stop action), it dispatches an [[Event.COMPLETE]] event.
* ''"inBack"''<br />
+
 
* ''"outBack"''<br />
+
The following properties can be tweened:
* ''"inOutBack"''<br />
+
*''x''
* ''"inBounce"''<br />
+
*''y''
* ''"outBounce"''<br />
+
*''rotation''
* ''"inOutBounce"''<br />
+
*''scale''
* ''"inCircular"''<br />
+
*''scaleX''
* ''"outCircular"''<br />
+
*''scaleY''
* ''"inOutCircular"''<br />
+
*''alpha''
* ''"inCubic"''<br />
+
*''anchorX''
* ''"outCubic"''<br />
+
*''anchorY''
* ''"inOutCubic"''<br />
+
 
* ''"inElastic"''<br />
+
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:
* ''"outElastic"''<br />
+
* ''"inBack"''
* ''"inOutElastic"''<br />
+
* ''"outBack"''
* ''"inExponential"''<br />
+
* ''"inOutBack"''
* ''"outExponential"''<br />
+
* ''"inBounce"''
* ''"inOutExponential"''<br />
+
* ''"outBounce"''
* ''"linear"''<br />
+
* ''"inOutBounce"''
* ''"inQuadratic"''<br />
+
* ''"inCircular"''
* ''"outQuadratic"''<br />
+
* ''"outCircular"''
* ''"inOutQuadratic"''<br />
+
* ''"inOutCircular"'
* ''"inQuartic"''<br />
+
* ''"inCubic"''
* ''"outQuartic"''<br />
+
* ''"outCubic"''
* ''"inOutQuartic"''<br />
+
* ''"inOutCubic"''
* ''"inQuintic"''<br />
+
* ''"inElastic"''
* ''"outQuintic"''<br />
+
* ''"outElastic"''
* ''"inOutQuintic"''<br />
+
* ''"inOutElastic"''
* ''"inSine"''<br />
+
* ''"inExponential"''
* ''"outSine"''<br />
+
* ''"outExponential"''
* ''"inOutSine"''<br />
+
* ''"inOutExponential"''
<br />
+
* ''"linear"''
Following examples demonstrates the possible uses of MovieClip class.<br />
+
* ''"inQuadratic"''
<br /></translate>
+
* ''"outQuadratic"''
=== <translate>Examples</translate> ===
+
* ''"inOutQuadratic"''
'''Example'''<br/>
+
* ''"inQuartic"''
<source lang="lua">-- construct a 100 frame animation where x coordinate of sprite tweens from 0 to 200 linearly
+
* ''"outQuartic"''
 +
* ''"inOutQuartic"''
 +
* ''"inQuintic"''
 +
* ''"outQuintic"''
 +
* ''"inOutQuintic"''
 +
* ''"inSine"''
 +
* ''"outSine"''
 +
* ''"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
 
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 88: 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
local mc = MovieClip.new{
+
local mc = MovieClip.new{
{1, 1, frame1},
+
{1, 1, frame1},
{2, 2, frame2},
+
{2, 2, frame2},
{3, 3, frame3},
+
{3, 3, frame3},
{4, 4, frame4},
+
{4, 4, frame4},
{5, 5, frame5},
+
{5, 5, frame5},
{6, 6, frame6},
+
{6, 6, frame6},
}
+
}
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 109: Line 114:
 
{26, 30, frame6},
 
{26, 30, frame6},
 
}
 
}
mc:setGotoAction(30, 1) -- if the animation reaches frame 30 then go to frame 1</source>
+
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;"|
=== <translate>Methods</translate> ===
+
=== Methods ===
[[Special:MyLanguage/MovieClip.new|MovieClip.new]] ''<translate>creates a new MovieClip object</translate>''<br/>
+
[[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/>
+
[[MovieClip.new]] ''creates a new MovieClip object''<br/><!--GIDEROSMTD:MovieClip.new(timeline) creates a new MovieClip object-->
[[Special:MyLanguage/MovieClip:getFrame|MovieClip:getFrame]] <br/>
+
 
[[Special:MyLanguage/MovieClip:gotoAndPlay|MovieClip:gotoAndPlay]] ''<translate>goes to the specified frame and starts playing</translate>''<br/>
+
[[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/>
+
[[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/>
+
[[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/>
+
[[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/>
+
[[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/>
+
[[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/>
+
[[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/>
+
=== Events ===
=== <translate>Constants</translate> ===
+
<!--[[Event.COMPLETE]]<br/>-->
 +
[[MovieClip_Event.COMPLETE]]<br/><!-- GIDEROSEVT:Event.COMPLETE movie clip complete event-->
 +
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 05: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