ActionScript 9-10

597 views

Published on

9 - 10

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
597
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ActionScript 9-10

  1. 1. Unit 7: Making Decisions and Repeating Yourself
  2. 2. Topics • Iteration (looping) statements • index loop: looping over arrays • Conditional statements • if / else • comparison operators: > >= < <= == != instanceof • logical operators: || && !
  3. 3. What is a “Loop" Statement? • A loop ("iteration") statement re-executes specified code until a condition is met • ActionScript supports four different loop statements • for • for-in • while • do-while
  4. 4. Using Index Loops and their Values
  5. 5. for (“Index") Loop • Counts from one number to another • Most commonly used
  6. 6. Bucle while var aNames:Array = ["Fred", "Ginger", "Sam"]; while(aNames.length > 0) { trace("Names in array: " + aNames.length); trace(aNames.pop()); } El bucle while se ejecuta mientras su condición sea verdadera. Si nunca cambia nada en el código del bucle como para que la condición pase a ser falsa, se estará creando un bucle sin fin.
  7. 7. Bucle do – while var aNames:Array = []; do { trace("Names in array: " + aNames.length); trace(aNames.pop()); } while(aNames.length > 0) El bucle do-while siempre se ejecuta por lo menos una vez. Después, continúa ejecutándose mientras su condición siga siendo verdadera. En el código, vería “Names in array: 0”, aun cuando la condición es falsa, porque la longitud de aNames no supera 0 y la condición no se ha comprobado hasta después de que el código del bucle se ha ejecutado.
  8. 8. • AttachingMultipleMovieClipsfrom anArray ofData • Loop over the length of an array • Trace index variables • Use index variables to create unique instance names • Use index variables to assign unique positions • Assign arrayvalues for display in a dynamically generated MovieClip instance Walkthrough7-1
  9. 9. Using Conditional Statements
  10. 10. What's a “Conditional Statement"? • A conditional statement tests whether one or more comparison expressions are true • If the entire condition is true, specified code executes, else other tests or default code may execute • ActionScript supports three types of conditional statements • if / else • switch / case (not covered) • Conditional operator (not covered)
  11. 11. What's a “Comparison Expression"? • ActionScript supports seven main comparison expressions • Is it true that • x > y x is greater than y ? • x >= y x is greater than or equivalent to y ? • x < y x is less than y ? • x <= y x is less than or equivalent to y ? • x == y x is equivalent (not "equals") to y ? • x != y x is not equivalent to y ? • x instanceof y x is an instance of a class named y
  12. 12. How Does it Look in Code? • If the expression is true, the code block executes var password:String = "fly"; if (txtPassword.text == password) { // runs if User typed "fly" in the password field } if (aPlayers instanceof Array) { // runs if aPlayers is an instance of the Array class }
  13. 13. How Do I Ask if Something is False? • ActionScript supports a "not" logical operator • Is it true that … • !(this is true) • is this expression not true (is it false)? var password:String = "fly"; if (!(txtPassword.text == password)) { // runs if User typed anything but "fly" in txtPassword } if (!(aPlayers instanceof Array)) { // runs if aPlayers is anything but an Array }
  14. 14. How Do I Ask More Than One Question at a Time? • ActionScript supports "and" and "or" logical operators • Is it true that • This is true && ("and") this is true • Are both expressions true? • This is true || ("or") this is true • Is either expression true?
  15. 15. How Does It Look in Code? • If the entire compound expression is true, the code will execute if (expression1 && expression2) { // runs if expressions 1 and 2 are both true } if (expression3 || !(expression4)) { // runs if expression 3 is true or 4 is not true }
  16. 16. How Does It Look in Code? • If the entire compound expression is true, the code will execute if (txtPassword.text == "fly" && player.admin == true) { adminMode(true); } if (player.highScore < 200 || !(player.status == "expert")) { easyMode(true); }
  17. 17. Can I Ask Alternative Questions? • An else if clause is tested only if the prior if is not true • Otherwise each if is separately tested if (txtPassword.text == "fly") { adminMode(true); } else if (player.highScore < 200) { easyMode(true); }
  18. 18. Can I Have a Default? • An else clause executes if none of the above are true if (txtPassword.text == "fly") { adminMode(true); } else if (player.highScore < 200) { easyMode(true); } else { regularMode(true); }
  19. 19. Can I Nest My Conditions? • Conditions may be nested, if a second condition only makes sense if a prior condition is true if (this._rotation <= 0) { this._xscale = this._xscale – 10; if(this._xscale <= 0) { this.unloadMovie(); } }
  20. 20. • VisuallyTogglinga MovieClipusingConditionalCode • Test the value of visual properties • Conditionally change MovieClip properties between states Walkthrough7-2
  21. 21. • RespondingtoRandom RotationandDynamicallyGeneratingMultiple MovieClips • Randomly calculate the change rate of a property • Test to ensure a calculation is only made once • Test for and respond to changes in property values • Call a function a specified number of times • Observing that each instance of MovieClip symbol is unique Lab7
  22. 22. Unit 8: Animating with ActionScript
  23. 23. Topics • Implementing drag and drop functionality for a MovieClip • Hit ("collision") testing between MovieClip instances • Using an initialization object in the attachMovie method • Using the onEnterFrame event handler • Working with animation velocity and conditionally testing Stage bounds
  24. 24. Dragging, Dropping, and Hit Testing MovieClip Objects
  25. 25. startDrag() and stopDrag() are MovieClip methods ball1.onPress = function():Void { How Do I Let the User Pick up a MovieClip Instance and Move It?
  26. 26. Every symbol instance has a bounding box What's the Difference Between a Bounding Box and Shape?
  27. 27. hitTest() is a MovieClip method which returns true or false if its bounding box or shape is touching either a target MovieClip How Do I Know if Two Objects are Touching?
  28. 28. • Dragging,Dropping,andHit TestingMovieClipObjects • Use onPress and onRelease event handler methods • Use the startDrag and stopDrag methods • Respond to collisions when dropping an object Walkthrough8-1
  29. 29. Initializing MovieClip Objects with an onEnterFrame Event Handler
  30. 30. Timeline animation occurs when the playhead enters a keyframe with different content than before When Does Flash “Animation" Occur?
  31. 31. MovieClip instances broadcast the onEnterFrame event ("signal") each time the playhead enters a frame What's the onEnterFrame Event?
  32. 32. Initialization objects are generic objects passed as an optional argument to the attachMovie() method How Do I “Initialize" an Attached MovieClip?
  33. 33. Velocity or the change rate of an animated MovieClip may need to be calculated or change at run time Why Make “Velocity" a Variable?
  34. 34. • InitializingAttachedMovieClipswithan onEnterFrameHandler • Use an initialization object when attaching MovieClip objects • Use the onEnterFrame event handler • Randomly calculate velocity (change rate) for two dimensions • Test for Stage boundaries during animation • Hit test during animation Walkthrough8-2

×