+ All Categories
Home > Documents > Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject...

Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject...

Date post: 05-Sep-2019
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
35
Flash - ActionScript 3 Dr. E. Benoist Bibliography: http: // as3. betaruce. com/ tut/ http: // livedocs. adobe. com/ flex/ 201/ langref/ index. html Fall Semester 07/08 Berne University of Applied Sciences 1
Transcript
Page 1: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Flash - ActionScript 3

Dr. E. BenoistBibliography:http: // as3. betaruce. com/ tut/http: // livedocs. adobe. com/ flex/201/ langref/ index. htmlFall Semester 07/08

Berne University of Applied Sciences 1

Page 2: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Table of Contents� Actionscript’s principles

� Actionscript SyntaxHelloworldCreating a Movie Clip instanceEvent HandlingImport an image

� Action Script Syntax

� Flex: develop in AS without Flash IDE

� Bibliography

Berne University of Applied Sciences 2

Page 3: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Actionscript’s principles

Berne University of Applied Sciences 3

Page 4: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

ActionScript’s principles

Syntax: from Javascript to JavaActionscript was just there for some small interaction (stop(),gotoAndPlay(frame)It developped using Javascript syntax: loosely typed,eventhandling attached to the objects by clicking on themNow mature: more Object Oriented, less loosely typedClasses organized in packages, Javadoc like documentation, . . .Programs are stored in separate files.

Symbols are classes derivating from basis classesMovieClip is the central concept of any animation

A MovieClip class should be attached to the “FlashAnimation”

Berne University of Applied Sciences 4

Page 5: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Actionscript Syntax

Berne University of Applied Sciences 5

Page 6: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Helloworld

Berne University of Applied Sciences 6

Page 7: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Helloworld Example

To create a class, we create an Action Script file with itsname.

class Example will be stored in file Example.as

We have to link a Class extending MovieClip with ourmain movie clip.

We need to integrate the actionscript file in a .fla file tocompile it into a .swf file.The constructor is executed when the Movie is started.

Berne University of Applied Sciences 7

Page 8: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Helloworld ExampleWe create the file helloWorld.as

We write the definition of the classWe create a new .fla file and define helloWorld asDocumentClass.

package{import flash.display.MovieClip;

public class helloWorld extends MovieClip{public function helloWorld(){trace(’Hello’);

}}

}

Berne University of Applied Sciences 8

Page 9: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Creating a Movie Clip instance

Berne University of Applied Sciences 9

Page 10: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Action Script Syntax

Action Script Creates a Tree,like Document ObjectModel in HTML

The root is the MovieClip Object attached to the applicationWe can attache children to this object (= inserting an objecton its stage).

We can also create empty new instances of a MovieClipand configure them after the creation

We use the graphics member of a MovieClip instance todraw in it.Graphics knows how to: beginFill(color,alpha) (startsthe fill mode), curveTo (draw a curve from the currentposition to the given position), drawCircle(), drawRect(),drawRoundRect(), endFill() (go back to draw only mode). . .

Berne University of Applied Sciences 10

Page 11: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Movie Clip including 2 MCspackage{import flash.display.MovieClip;public class example extends MovieClip{public var mc1:MovieClip = new MovieClip();public var mc2:MovieCLip = new MovieClip();public function example(){mc1.graphics.lineStyle(1);mc1.graphics.beginFill(0xff0000);mc1.graphics.drawCircle(100,100,50);this.addChild(mc1);mc2.graphics.lineStyle(1);mc2.graphics.beginFill(0xffff00);mc2.graphics.drawRect(100,100,150,100);this.addChild(mc2);

}}

Berne University of Applied Sciences 11

Page 12: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Event Handling

Berne University of Applied Sciences 12

Page 13: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Event Handling in AS3We can add event handling to any instance of the classMovieClip.We call the method addEventListener on the object

First argument: the eventSecond argument: the function that has to be executed

mc1.addEventListener(Event.ENTER_FRAME, enterFrame_handler);

Available Events for a movie ClipEvent.ENTER_FRAME fired as long as the clip is not stopped,by each frame entry.MouseEvent.CLICKMouseEvent.DOUBLE_CLICK (Only if activated)MouseEvent.MOUSE_OVER. . .

Berne University of Applied Sciences 13

Page 14: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Change properties of MC Instances

MovieClips are children of a parentThey have properties:

x and y are read write properties: place of MC in its parentstage (read/write).mouseX, mouseY indicates where the mouse is currently;currentFrame (read only) indicates at which frame this MCis.visible (Read/Write) to change the visibility status of anobject.width and height(RW) of the object.

Berne University of Applied Sciences 14

Page 15: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Example

package{import flash.display.MovieClip;public class example extends MovieClip{public var mc1:MovieClip = new MovieClip();public var mc2:MovieCLip = new MovieClip();

public function example(){mc1.graphics.lineStyle(1);mc1.graphics.beginFill(0xff0000);mc1.graphics.drawCircle(100,100,50);mc1.addEventListener(Event.ENTER_FRAME,enterFrame_handler);this.addChild(mc1);

Berne University of Applied Sciences 15

Page 16: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

...mc2.graphics.lineStyle(1);mc2.graphics.beginFill(0xffff00);mc2.graphics.drawRect(100,100,150,100);mc2.addEventListener(MouseEvent.CLICK, mouseClick_handler);this.addChild(mc2);

}private function enterFrame_handler(e:Event):void{mc1.x += 3;

}private function mouseClick_handler(e:Event):void{trace("mc2 Rectangle is clicked!");

}}

Berne University of Applied Sciences 16

Page 17: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Import an image

Berne University of Applied Sciences 17

Page 18: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Import an ImageWe import the image in the flash application

File/Import/ImporttoStageselect the imageModify/ConverttoSymbol(F8)Select type Movie-ClipRemove the image from the stage

Create a class representing your MCOpen the library (Ctrl L)Right click on your image, choose LinkageChoose Export for ActionScriptType the name of the class you want to define

We can create an instance of an existing MC Class

mc = new MyImageClass();

Berne University of Applied Sciences 18

Page 19: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

More on Event Listeners

We can add an event listener

mc.addEventListener(MouseEvent.DOUBLE_CLICK,doubleClick_handler);

We can also remove an event listener

mc.removeEventListener(MouseEvent.DOUBLE_CLICK,doubleClick_handler);

The event listener function can access the Object whichgenerated this event: event.target

Berne University of Applied Sciences 19

Page 20: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

ExampleWe already have imported an image, created a MCsymbol and named its class FunnyCar

package{import flash.display.∗;import flash.events.∗;public class Car extends MovieClip{public var mc:MovieClip;public function Car(){mc = new FunnyCar();this.addChild(mc);mc.y = stage.stageHeight/2;mc.doubleClickEnabled = true;mc.addEventListener("doubleClick", doubleClick_handler);mc.addEventListener("click", click_handler);

}...

Berne University of Applied Sciences 20

Page 21: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

...private function doubleClick_handler(e:Event){e.target.addEventListener("enterFrame",enterFrame_handler);

}private function enterFrame_handler(e:Event){e.target.x += 3;

}private function click_handler(e:Event){e.target.removeEventListener("enterFrame", enterFrame_handler);

}}

}

Berne University of Applied Sciences 21

Page 22: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Use text Field 1

We can create an instance of the flash.text.TextFieldclassIt has a member text that is read/write

public function HelloWorld(){var display_txt:TextField = new TextField();display_txt.text = "Hello World!";addChild(display_txt);

}

1this example comes fromhttp://www.senocular.com/flash/tutorials/as3withmxmlc/

Berne University of Applied Sciences 22

Page 23: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Action Script Syntax

Berne University of Applied Sciences 23

Page 24: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Actionscript syntax

Data TypingType is given after the element variable:TypeAll members should be typedIf a member can accept any type, use *

var myNum:Number;var myVar:∗;

Return value should be typed, use void if the function returnsnothing

function myFunction():void {}

Berne University of Applied Sciences 24

Page 25: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Actionscript syntax (Cont.)Parameters/Arguments: Functions can have optionalvalue.

public function testFunctions():void {usingOptional(1);// usingOptional(); <− wrong − first parameter requiredusingRest(1, 2, 3, 4);

}private function usingOptional(required:Number,

optional:String = "default"):void {trace(required); // 1trace(optional); // "default"

}private function usingRest(required:Number, ... optionalArgs):void {

trace(required); // 1trace(optionalArgs); // [2, 3, 4]

}Berne University of Applied Sciences 25

Page 26: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Dynamic Objects with dynamicproperties

Unlike in Java, AS objects may receive properties on therun

// Create a dynamic object with dynamic propertyvar obj:Object = new Object();obj.prop = "value";// delete dynamic property on obj using deletedelete obj.prop// cannot delete obj, only able to set to nullobj = null;// int, unit, Number and Boolean types cannot be deletedvar intNum:int = 0;var uintNum:uint = 0;var numNum:Number = NaN;

Berne University of Applied Sciences 26

Page 27: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Flex: develop in AS without FlashIDE

Berne University of Applied Sciences 27

Page 28: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Flex SDK

Compile AS without using FlashNeed the Flex Standard Development Kit (SDK)

Available on all platformsWindows and MacBeta Version for Linux (plug-in for Eclipse available)

Swing like developmentDefine a tree of movie clipsDifference: the time lines (one per mc)

Berne University of Applied Sciences 28

Page 29: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Flex Builder

Compilator mxmlc.exe

Works like javac

mxmlc.exe −o output.swf "D:\My Directory\samples\MyClass.as"

Berne University of Applied Sciences 29

Page 30: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Hello World Example

The root element extends the class Sprite

package {import flash.display.Sprite;import flash.text.TextField;public class HelloWorld extends Sprite {

public function HelloWorld() {var display_txt:TextField = new TextField();display_txt.text = "Hello World!";addChild(display_txt);

}}

}

Berne University of Applied Sciences 30

Page 31: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Graphics and drawing

package {import flash.display.Sprite;import flash.display.Shape;import flash.display.Graphics;public class Rectangles extends Sprite {public function Rectangles() {drawColoredRectIn(graphics, 0xFF0000);var rect:Shape = new Shape();drawColoredRectIn(rect.graphics, 0xFFFF00);rect.x = 50;rect.y = 50;addChild(rect);

}

Berne University of Applied Sciences 31

Page 32: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

private function drawColoredRectIn(target:Graphics, color:int):void {target.lineStyle(1, 0x000000);target.beginFill(color);target.drawRect(0, 0, 100, 100);

}}

}

Berne University of Applied Sciences 32

Page 33: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Importing Assets from Flash (withoutFlash IDE)package {import flash.display.Sprite;public class EmbedAssets extends Sprite {[Embed(source="images/trophy.png")]private var TrophyImage:Class;[Embed(source="swfs/satdish.swf")]private var SatelliteAnimation:Class;public function EmbedAssets() {addChild(new SatelliteAnimation());addChild(new TrophyImage());

}}

}

Berne University of Applied Sciences 33

Page 34: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

Bibliography

Berne University of Applied Sciences 34

Page 35: Flash - ActionScript 3 fileAction Script Syntax ActionScriptCreatesaTree,likeDocumentObject ModelinHTML TherootistheMovieClipObjectattachedtotheapplication Wecanattachechildrentothisobject

More about Flash and Flex

Flash language reference (Javadoc like Description ofstandard packages)http://livedocs.adobe.com/flex/201/langref/index.html

Flash tutorials (Flash with AS3 / Flex)http://www.senocular.com/flash/tutorials.php

An easy tutorial to start with Actionscripthttp://as3.betaruce.com/tut/

A lot of tutorials showing some nice features of AS (infrench ;))http://www.zoneflash.net/tutoriaux.php

Berne University of Applied Sciences 35


Recommended