First time here? First time here? Newsletter Signup Newsletter
Search tutorials
Author: ::::: Daafy ::::: | Website: http://
On our scene, we'll first insert a new layer at top and name it "actions". Open first keyframe's properties (double-click on it) -----> Action tab
Now, we insert our constants (constants var are vars that will be used by the script but not changed by it as contrary as a counter for example). So we put them before the "program" :
Comment : ::::::::: Our constants ::::::
Set Variable: "TotalRubs" = 7
We'll need the height of the rub so we get it
Set Variable: "RubHeight" = GetProperty ("Rub",_height)
Then we input now the label we want for each rub (assuming we've got 7)
Note that all values of them are character string with ""
Comment : -----------------------------------------------
Set Variable: "LabelRub1" = "I"
Comment : -----------------------------------------------
Set Variable: "LabelRub2" = "am"
Comment : -----------------------------------------------
Set Variable: "LabelRub3" = "learning"
Comment : -----------------------------------------------
Set Variable: "LabelRub4" = "to"
Comment : -----------------------------------------------
Set Variable: "LabelRub5" = "create"
Comment : -----------------------------------------------
Set Variable: "LabelRub6" = "awesome"
Comment : -----------------------------------------------
Set Variable: "LabelRub7" = "menu"
Comment : ::::::::: Dupplicating part ::::::
let's always initialize our counter before "Loop" action :
Set Variable: "n" = 0
Do actions in loop as many time as our "TotalRubs" var
Loop While (nDO NOT FORGET to increase our counter !
      Set Variable: "n" = n+1
Our var ("PosY") must be "dynamic" because there will be a different one for each rub.
	you must fill three parameters (target, new name, depth).
      Duplicate Movie Clip ("Rub", n, n*10)
	We'll see later more about this "if condition"
      If (n=1)
	We define here the future position of our dupplicated movies
            Set Variable: "YPosition" = 30
            Set Variable: "YPosition" = GetProperty (n-1, _y) + RubHeight
      End If
At last, we set our "YPosition" var to our dupplicated movie
      Set Property (n, Y Position) = YPosition
	We set the corresponding label for each rub dupplicated
      Set Variable: n&":Label" = eval ("LabelRub"&n)
End Loop
We don't need the original Rub MC, so we set to him an invisibility.
Set Property ("Rub", Visibility) = 0

Here we have set a number as a new name (our counter) for ours dupplicated movies because we'll see later that number as target movie is really practical ! About the third parameter...well, doesn't matter, the important thing about it you must relember is : ALL DUPPLICATED MOVIES MUST HAVE A DIFFERENT DEPTH !!!. If not, you won't see any dupplicated movie having the same depth number than another dupplicated previously. Biggest is your number, more at top will be your MC. Why do we set the depth at n*10 ? Imagine that rubs will have decimal depth and subrub units depth...rub 1 : depth 10, Rub 3 subrub 2 : depth 32. So note that with this calcul we can't set more than 9 subrubs per rub...
Well, we'll place rubs with a reference rub. In fact, eachrub will be placed with regard to the previous one + the height of a rub. So the first rub need to have a properly y position because it doesn't have any reference rub.
Now about setting the right label, to define a var inside an MC, we must set the path of this MC, ":" to mean the next word will be the var name. Ex, you're inside an MC and you want to define a var up in hierarchy, you'll set : "../:MyVar" = "something". Here, the var we want to define is inside our dupplicated movie (with n as name---->see the new name we set on dupplicating) so the path of our var will contain expression (n) and caracter string (":Label"). Then about the value, we set previously in our constants labels for each rub ("LabelRub1"="I", etc, ...), so our value, like its name, should be "dynamic" cauz it contain caracter string ("LabelRub") and an expression (n). So to set a value that is dynamic, we'll need to use the function eval (that eval the value of a var from its name) : eval ("LabelRub"&n). Is it quite clear ??? Sorry for my horrible english writing...

» Level Intermediate

Added: 2001-01-08
Rating: 7.99 Votes: 1292
(10 being the highest)
» Author
Daafy works with Flash since 2 years but began to script (never scripted before) since few months with Flash 4. Like you, he began by downloading sources with some white nights, coffee & other...
» Download
Download the files used in this tutorial.
» Forums
More help? Search our boards for quick answers!


  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.
Featured Flash FLA
» Author: Inocreato
» Title: RaiseTheBlocks
» Description: Raise all the blocks to win the game
Featured Sound Loops
Image for equalize

Audio Player

» Author: TomCat Carty
» Title: The Wood
» Description: Just a little game ending or it can maybe be looped. Recorders with music box and percussion to give the feel of well, I don't know, the woods? Free to use, just credit me. thank you
Latest Font
» Author: Fábio FAFERS
» Description: I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all
Featured Sound Fx
Image for equalize

Audio Player

» Author: Davisigner
» Description: Hmm... what to say about this one? It's reminiscent of the closing notes of the opening music from the Three Stooges done in a church organ style with a closing cymbal crash. I'll give this one away gratis, but feel free to check out my free loops and potential upcoming license-mandated ones over in the respective part of Flashkit.