Interaktionsudvikling, Multimediedesigneruddannelsen, Erhvervsakademi Århus

Interaktionskonstruktion

1. semester - efteraar 2009 - 1md09M- flash og actionscript

Plan for dag 3

 


 

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Hvilke elementer fra dag 2 bliver brugt i dette lille spil?

 

Flash fil til Cross road (fla fil)

Det nye er Collision detection dvs. måling om girl_mc rammes af race1_mc eller race2_mc.

 

// collision detection || = OR .............................................................
if (race1_mc.hitTestObject(girl_mc) || race2_mc.hitTestObject(girl_mc)) {

girl_mc.gotoAndStop(3); // girl falls
hits += 1;

}

 

 


Tekst input

 

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Flash fil login.fla

 

var input1:String = username_txt.text; // get the textinput from the input Textfields on the stage
var input2:String = password_txt.text;


// testing the input
if (input1 == "Bjarne" && input2 == "1234567890"){
gotoAndPlay(10); // ok login
}
else {
outText.text = "Wrong login !!!";
}

 

 

Opgave 1: Kan du sammen med sidemanden komme med forslag til mulige gameplayes (spil-ideer), hvor man anvender nogle af actionscript elementerne fra dag 2 sammen med ovenstående elementer? Tegn evt. nogle hurtige skitser på papir.

 


Eksterne Actionscript filer (.as)
Actionscript Klasser og objekter

 

I Actionscript Lesson 4 introduceres man til grundlæggende objekt orienteret programmering (OOP) i ActionScript. Denne tilgang til programmering kendes også fra programmeringssprog som C++ og Java. Det er karakteristisk ved OOP at man arbejder med begreber som Klasser og Objekter.

Ofte laver man klasser der simulere (har nogle egenskaber og adfærd) fysiske ting. F.eks. kunne vi have Klassen Hund som har egenskaberne (properties): alder, farve, x og y position. Udfra den generelle Klasse Hund kan man så skabe nogle specifikke instancer (objekter) af Klassen Hund, såsom hunden med instance navnet pluto (med farven = gul) eller nuser (med farven = hvid).

img

Vi anvender allerede en visuel form for OOP i Flash ved at have Symboler (Klasser) som findes i Librariet. Når man trækker et symbol ind på stagen skabes der en specifik instance af dette symbol, som vi efterfølgende kan give et instance navn f.eks. blueBox_mc.

Navngivningsregl: Indenfor OOP skriver man klassenavne med en stort begyndelsesbogstave og instancer/objekter med lille begyndelsesbogstave.

I ActionScript kan man skabe nye instanser af klassen Hund via følgende kode.

var pluto:Hund = new Hund();

var nuser:Hund = new Hund();

Hvis Hund var et movieclip symbol, kunne vi efterfølgende ændre på pluto's egenskaber (properties) via kommandoer som.

pluto.rotation = 45;
pluto.x = 150;

Via en ekstern actionscript fil ved navn Hund.as ,kunne man fremstille (programmere) en mere præcis model af en Hund, sådan at pluto instansen adlød følgende kommandoer:

pluto.alder = 5; // property,navneord
pluto.farve = "gul";
pluto.udseende = "glad.jpg";


pluto.hop(); // metoder = adfærd, verber
pluto.dæk();

 

I Lesson 4 arbejder man ikke med en Hunde, men istedet med Ellipser.

Central kode:

color = Math.random() * 0xFFFFFF; // tilfældig farve

var ellipse:Ellipse = new Ellipse(10, 10, color);
addChild(ellipse);
ellipse.x = mouseX;
ellipse.y = mouseY;

 

Her skabes en ny (new) instans af Ellipse klassen med startværdierne (10,10,color) og navnet ellipse (med lille e).
addChild(ellipse) tilføjer ellipse instansen til stagen (actionscripts displayliste) .

Selv Ellipse klassen er defineret i ellipse.as filen, hvor man finder følgende kode.

package {
import flash.display.MovieClip;

public class Ellipse extends MovieClip {

// konstruktør funktionen som bruges til at skabe en ny instans.Ellipse tager 3 parametre (w,h, color)
public function Ellipse(w:Number=40,h:Number=40, color:uint=0xff0000) {
graphics.beginFill(color);
graphics.drawEllipse(0, 0, w, h);
graphics.endFill();
}
}
}

 

Ellipse extends MovieClip betyder at Ellipse klassen arver alle properties og metoder fra MovieClip klassen dvs. at man kan skrive kommandoen.

ellipse.rotation = 30;

Lav evt. Opgave 3

 

Ekstra:

Du kan læse mere om Objekt orienteret programmering i Actionscript m.m. på Adobe's online actionscript manual (avanceret)


Colin Moock's introduktion til OOP koncepter. (lyt til en pædagogisk actionscript guru)

 

Andre interessant ActionScript videoer på tv.adobe.com (intro niveau)


Lesson 5 : Loadning af eksterne swf filer

 

loader

Modulopbygning af flash produktion

Fordele pga.

Husk at:


 

Opgaver:

 

Opgave 2: Lav en Flash lommeregner som kan lave addition, subtraktion, multiplikation og division af to indtastede tal.

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Hint:

function plus(event:MouseEvent){

input1= Number(inText1.text); // get the textinput from the inputfields on the stage
input2 = Number(inText2.text);

output = input1 + input2;

outText.text = output; // put the output to the stage

}

 

 

Opgave 3: Prøve at arbejde lidt videre med Lesson 4 complete, som de foreslår det på side 77 i Actionscript bogen. Prøv f.eks.

 

 

 

Lav Lesson 4,5 hvis du ikke har fået dem lavet.

I må gerne oploade jeres løsninger til jeres webhotel og aflevere en URL til mig på Fronter aflevering - Actionscript.