creative programming in actionscript 3.0

33
Creative Programming in ActionScript 3.0

Upload: peter-elst

Post on 05-Apr-2017

8.587 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Creative Programming in ActionScript 3.0

Creative Programming in ActionScript 3.0

Page 2: Creative Programming in ActionScript 3.0

• Flash Platform Consultant• Lecturer Devine• Adobe Community Expert• Technical author• Full time web geek

Page 3: Creative Programming in ActionScript 3.0

Creativity is a mental process involving the generation of new ideas or concepts, or new associations of the creative mind

between existing ideas or concepts.

Page 4: Creative Programming in ActionScript 3.0

Programming is a the process of writing, testing, debugging and maintaining the source code of computer programs.

Page 5: Creative Programming in ActionScript 3.0

What will we talk about?

• Object-Oriented Programming

• Classes and instances

• Inheritance

• Encapsulation

• Basic trigonometry

• Distance between points

• Polar and Cartesian coordinates

• Experimentation

• BitmapData

• Sound Spectrum

Page 6: Creative Programming in ActionScript 3.0

Object-Oriented Programming

Page 7: Creative Programming in ActionScript 3.0

Classes and instances

Page 8: Creative Programming in ActionScript 3.0

Classes

• Classes are blueprints of functionality

• Allow for reusable and modular code

• Contain methods (functions) and properties (variables)

Ball class

Page 9: Creative Programming in ActionScript 3.0

Instances

• Instances (objects) are copies based on a class blueprint

• Instance property values are independent of its class

Ball class

Ball instance Ball instance Ball instance

Page 10: Creative Programming in ActionScript 3.0

Example (Library panel)

Page 11: Creative Programming in ActionScript 3.0

package {

public class HelloWorld {

public var name:String;

public function HelloWorld(value:String) { this.name = value; trace(“Hello world from “+ this.name); }

}

}

HelloWorld.as

Page 12: Creative Programming in ActionScript 3.0

var myWorld:HelloWorld = new HelloWorld(“Peter”);// Hello world from Petertrace(myWorld.name); // Peter

var otherWorld:HelloWorld = new HelloWorld(“Barack”);// Hello world from Baracktrace(myWorld.name); // Barack

HelloWorld instances

Page 13: Creative Programming in ActionScript 3.0

Inheritance

• Classes can extend each others functionality

• Each class can only inherit from one super class

• Use the “extends” keyword

Animal class

Dog class Cat class

Tiger class

Page 14: Creative Programming in ActionScript 3.0

Example (inheritance.fla)

Page 15: Creative Programming in ActionScript 3.0

Encapsulation

• Protect the inner workings of your class

• Access modifiers (public, private, protected, internal)

• Use getter/setter methods to provide access

getter/setter

class internals

other class

Page 16: Creative Programming in ActionScript 3.0

Access modifiers

• public - accessible from anywhere

• private - only accessible from within the class

• protected - only accessible within class and subclasses

• internal - only accessible within same package (default)

Page 17: Creative Programming in ActionScript 3.0

Getter/setters

• Looks like a method, behaves like a property

• Provides a single entry point for setting a property

• Useful for input validation

private var _age:Number;

public function get age():Number { return this._age;}

public function set age(val:Number):void { if(val >= 18) { this._age = val; } else { trace(“you are too young”); }}

Page 18: Creative Programming in ActionScript 3.0

package { public class Account { private var _email:String;

public function set email(val:String):void { if(val.indexOf(“@”) != -1) { this._email = val; } else {

trace(“invalid email”); } }

}}

Account.as

var myAccount:Account = new Account();myAccount.email = “[email protected]”;

Page 19: Creative Programming in ActionScript 3.0

Basic Trigonometry

Page 20: Creative Programming in ActionScript 3.0

point 2

point 1

Distance between points

Page 21: Creative Programming in ActionScript 3.0

A

BC

point 2

point 1

Distance between points

Page 22: Creative Programming in ActionScript 3.0

A² + B² = C²

Page 23: Creative Programming in ActionScript 3.0

d(P1,P2)=(x2‐x1)2+(y2–y1)2 √

Page 24: Creative Programming in ActionScript 3.0

Example (distance.fla)

Page 25: Creative Programming in ActionScript 3.0

(x,y)

Cartesian coordinates

x

y

Page 26: Creative Programming in ActionScript 3.0

(r, θ)

θ

r

Polar coordinates

Page 27: Creative Programming in ActionScript 3.0

(r, θ)

θ

C

A

B

A² + B² = C²

Page 28: Creative Programming in ActionScript 3.0

x=Math.cos(θ)*radiusy=Math.sin(θ)*radius

Converting polar coordinates

θistheangleinradians

Page 29: Creative Programming in ActionScript 3.0

Example (polar-animation.fla)

Page 30: Creative Programming in ActionScript 3.0

Experimentation

Page 31: Creative Programming in ActionScript 3.0

flash.display.BitmapData

• Allows you to get pixel level access to bitmaps

• Work with color channels

• Perform bitmap operations

Page 32: Creative Programming in ActionScript 3.0

SoundMixer.computeSpectrum

• Returns spectrum information of sound

• ByteArray with floating point values between -1 and 1

• Raw wave form or Fast Fourier Transform (FFT)

• Doesn’t work for microphone input (yet) :(

• see www.getmicrophone.com

Page 33: Creative Programming in ActionScript 3.0

Thank you!

Books

Foundation ActionScript 3.0 Animation “Making Things Move” Object-Oriented ActionScript 3.0

Websiteswww.gotoandlearn.comwww.levitated.net

Get in touch

Email: [email protected]: www.peterelst.comTwitter: peterelst