SlideShare une entreprise Scribd logo
1  sur  35
Unit 7: Making Decisions
and Repeating Yourself
Topics
• Iteration (looping) statements
• index loop: looping over arrays
• Conditional statements
• if / else
• comparison operators: > >= < <= == != instanceof
• logical operators: || && !
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
Using Index Loops and their Values
for (“Index") Loop
• Counts from one number to another
• Most commonly used
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.
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.
• 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
Using Conditional Statements
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)
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
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
}
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
}
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?
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
}
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);
}
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);
}
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);
}
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();
}
}
• VisuallyTogglinga MovieClipusingConditionalCode
• Test the value of visual properties
• Conditionally change MovieClip properties between states
Walkthrough7-2
• 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
Unit 8: Animating with ActionScript
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
Dragging, Dropping, and
Hit Testing MovieClip Objects
startDrag() and stopDrag() are MovieClip methods
ball1.onPress = function():Void {
How Do I Let the User Pick up a MovieClip Instance
and Move It?
Every symbol instance has a bounding box
What's the Difference Between a Bounding Box and
Shape?
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?
• 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
Initializing MovieClip Objects
with an onEnterFrame Event Handler
Timeline animation occurs when the playhead enters a
keyframe with different content than before
When Does Flash “Animation" Occur?
MovieClip instances broadcast the onEnterFrame event ("signal") each
time the playhead enters a frame
What's the onEnterFrame Event?
Initialization objects are generic objects passed as an optional
argument to the attachMovie() method
How Do I “Initialize" an Attached MovieClip?
Velocity or the change rate of an animated MovieClip may
need to be calculated or change at run time
Why Make “Velocity" a Variable?
• 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

Contenu connexe

Tendances

Battle of The Mocking Frameworks
Battle of The Mocking FrameworksBattle of The Mocking Frameworks
Battle of The Mocking FrameworksDror Helper
 
Exception Handling: Designing Robust Software in Ruby
Exception Handling: Designing Robust Software in RubyException Handling: Designing Robust Software in Ruby
Exception Handling: Designing Robust Software in RubyWen-Tien Chang
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsYura Nosenko
 
Pi j4.2 software-reliability
Pi j4.2 software-reliabilityPi j4.2 software-reliability
Pi j4.2 software-reliabilitymcollison
 
Java object oriented programming - OOPS
Java object oriented programming - OOPSJava object oriented programming - OOPS
Java object oriented programming - OOPSrithustutorials
 
Testing Spring Boot application in post-JUnit 4 world
Testing Spring Boot application in post-JUnit 4 worldTesting Spring Boot application in post-JUnit 4 world
Testing Spring Boot application in post-JUnit 4 worldYura Nosenko
 
Google mock for dummies
Google mock for dummiesGoogle mock for dummies
Google mock for dummiesHarry Potter
 
Practical unit testing 2014
Practical unit testing 2014Practical unit testing 2014
Practical unit testing 2014Andrew Fray
 
Mockito with a hint of PowerMock
Mockito with a hint of PowerMockMockito with a hint of PowerMock
Mockito with a hint of PowerMockYing Zhang
 
Types of exceptions
Types of exceptionsTypes of exceptions
Types of exceptionsmyrajendra
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Codeslicklash
 
BDD style Unit Testing
BDD style Unit TestingBDD style Unit Testing
BDD style Unit TestingWen-Tien Chang
 
Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in JavaVadym Lotar
 
Decision statements
Decision statementsDecision statements
Decision statementsJaya Kumari
 
Kill the mutants - A better way to test your tests
Kill the mutants - A better way to test your testsKill the mutants - A better way to test your tests
Kill the mutants - A better way to test your testsRoy van Rijn
 
Java Exception Handling
Java Exception HandlingJava Exception Handling
Java Exception HandlingDeeptiJava
 

Tendances (20)

Battle of The Mocking Frameworks
Battle of The Mocking FrameworksBattle of The Mocking Frameworks
Battle of The Mocking Frameworks
 
Exception Handling: Designing Robust Software in Ruby
Exception Handling: Designing Robust Software in RubyException Handling: Designing Robust Software in Ruby
Exception Handling: Designing Robust Software in Ruby
 
Whitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applicationsWhitebox testing of Spring Boot applications
Whitebox testing of Spring Boot applications
 
Pi j4.2 software-reliability
Pi j4.2 software-reliabilityPi j4.2 software-reliability
Pi j4.2 software-reliability
 
Flow Control (C#)
Flow Control (C#)Flow Control (C#)
Flow Control (C#)
 
Mock with Mockito
Mock with MockitoMock with Mockito
Mock with Mockito
 
Java object oriented programming - OOPS
Java object oriented programming - OOPSJava object oriented programming - OOPS
Java object oriented programming - OOPS
 
Testing Spring Boot application in post-JUnit 4 world
Testing Spring Boot application in post-JUnit 4 worldTesting Spring Boot application in post-JUnit 4 world
Testing Spring Boot application in post-JUnit 4 world
 
Google mock for dummies
Google mock for dummiesGoogle mock for dummies
Google mock for dummies
 
Practical unit testing 2014
Practical unit testing 2014Practical unit testing 2014
Practical unit testing 2014
 
Java exception handling
Java exception handlingJava exception handling
Java exception handling
 
Mockito with a hint of PowerMock
Mockito with a hint of PowerMockMockito with a hint of PowerMock
Mockito with a hint of PowerMock
 
Types of exceptions
Types of exceptionsTypes of exceptions
Types of exceptions
 
Working Effectively with Legacy Code
Working Effectively with Legacy CodeWorking Effectively with Legacy Code
Working Effectively with Legacy Code
 
BDD style Unit Testing
BDD style Unit TestingBDD style Unit Testing
BDD style Unit Testing
 
Exceptions in Java
Exceptions in JavaExceptions in Java
Exceptions in Java
 
Nalinee java
Nalinee javaNalinee java
Nalinee java
 
Decision statements
Decision statementsDecision statements
Decision statements
 
Kill the mutants - A better way to test your tests
Kill the mutants - A better way to test your testsKill the mutants - A better way to test your tests
Kill the mutants - A better way to test your tests
 
Java Exception Handling
Java Exception HandlingJava Exception Handling
Java Exception Handling
 

Similaire à ActionScript 9-10

Similaire à ActionScript 9-10 (20)

Java Tutorial
Java Tutorial Java Tutorial
Java Tutorial
 
Android webinar class_java_review
Android webinar class_java_reviewAndroid webinar class_java_review
Android webinar class_java_review
 
Loops in java script
Loops in java scriptLoops in java script
Loops in java script
 
2. overview of c#
2. overview of c#2. overview of c#
2. overview of c#
 
UNIT 3.ppt
UNIT 3.pptUNIT 3.ppt
UNIT 3.ppt
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
 
Java Tutorial | My Heart
Java Tutorial | My HeartJava Tutorial | My Heart
Java Tutorial | My Heart
 
3. Flow Controls in C (Part II).pdf
3. Flow Controls in C (Part II).pdf3. Flow Controls in C (Part II).pdf
3. Flow Controls in C (Part II).pdf
 
Java tut1
Java tut1Java tut1
Java tut1
 
Java tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo CahersiveenJava tut1 Coderdojo Cahersiveen
Java tut1 Coderdojo Cahersiveen
 
Javatut1
Javatut1 Javatut1
Javatut1
 
Java tut1
Java tut1Java tut1
Java tut1
 
Programming fundamentals through javascript
Programming fundamentals through javascriptProgramming fundamentals through javascript
Programming fundamentals through javascript
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Building unit tests correctly
Building unit tests correctlyBuilding unit tests correctly
Building unit tests correctly
 
We Are All Testers Now: The Testing Pyramid and Front-End Development
We Are All Testers Now: The Testing Pyramid and Front-End DevelopmentWe Are All Testers Now: The Testing Pyramid and Front-End Development
We Are All Testers Now: The Testing Pyramid and Front-End Development
 
Pitfalls Of Tdd Adoption by Bartosz Bankowski
Pitfalls Of Tdd Adoption by Bartosz BankowskiPitfalls Of Tdd Adoption by Bartosz Bankowski
Pitfalls Of Tdd Adoption by Bartosz Bankowski
 
Google mock for dummies
Google mock for dummiesGoogle mock for dummies
Google mock for dummies
 
Google mock for dummies
Google mock for dummiesGoogle mock for dummies
Google mock for dummies
 

Dernier

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsPooky Knightsmith
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research DiscourseAnita GoswamiGiri
 

Dernier (20)

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young minds
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research Discourse
 

ActionScript 9-10

  • 1. Unit 7: Making Decisions and Repeating Yourself
  • 2. Topics • Iteration (looping) statements • index loop: looping over arrays • Conditional statements • if / else • comparison operators: > >= < <= == != instanceof • logical operators: || && !
  • 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. Using Index Loops and their Values
  • 5. for (“Index") Loop • Counts from one number to another • Most commonly used
  • 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. 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. • 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. • VisuallyTogglinga MovieClipusingConditionalCode • Test the value of visual properties • Conditionally change MovieClip properties between states Walkthrough7-2
  • 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. Unit 8: Animating with ActionScript
  • 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. Dragging, Dropping, and Hit Testing MovieClip Objects
  • 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. Every symbol instance has a bounding box What's the Difference Between a Bounding Box and Shape?
  • 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. • 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. Initializing MovieClip Objects with an onEnterFrame Event Handler
  • 30. Timeline animation occurs when the playhead enters a keyframe with different content than before When Does Flash “Animation" Occur?
  • 31.
  • 32. MovieClip instances broadcast the onEnterFrame event ("signal") each time the playhead enters a frame What's the onEnterFrame Event?
  • 33. Initialization objects are generic objects passed as an optional argument to the attachMovie() method How Do I “Initialize" an Attached MovieClip?
  • 34. Velocity or the change rate of an animated MovieClip may need to be calculated or change at run time Why Make “Velocity" a Variable?
  • 35. • 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