Flash


Macromedia Flash är ett verktyg för att skapa interaktiv media så som till exempel webbplatser. Med Flash skapar man filmer/program som kan innehålla vektorgrafik och pixelgrafik. Det är en stor fördel att kunna använda vektorgrafik istället för pixelgrafik i vissa ändanmål.
Du kan skapa kontroll över hela din applikation som du har skapat på ett enkelt sätt.
Jag har gjort en tutorial här nedan som visar hur man kan skapa en miniräknare i flash.
Börja med att starta Macromedia flash och skapa ett nytt dokument.
Till vänster hittar du förmodligen verktygen. Börja med att skapa en rektangel, detta gör du genom att trycka på retangel i verktygfältet och sedan dra upp en rektangel efter önskad storlek.
rectangle
Du vill att det ska vara en etta i din rektangel för det ska vara en knapp till miniräknaren som när du trycker på en etta så ska det bli en etta i displayen. Du skriver en etta genom att trycka på A:t i verktygsfältet som är över rektangelverktyget. Och skriver din etta på önskat ställe.
Nu har du ett bildobjekt och ett text objekt,etta men du vill att det ska vara en knapp. för att göra en knapp av det markerar du bägge objekten och trycker antingen på F8 eller går modify -> convert to symbol.
convert to symbol
Du kryssar i button och namnger den med önskat namn, till exempel B1.
Upprepa detta tills att du har skapat alla siffror och andra knappar som du vill ha.
kanppar
Nu ska du skapa en display. detta gör du genom att dra ut en textruta. När det är klart ska du ändra om instansnamnet för den textrutan, detta gör du genom att gå ner på properties längst ner i programmet och skriver önskat namn på texfältet.
instance Name
Glöm inte heller att skriva in ett varibalnamn som kommer att användas när vi trycker på en knapp.Sen kan du skapa resten av layouten av din minräknare.
variable
Nu är det dags för att koda!!!
För att skriva in koden för ettan markerar du din knapp för ettan och går ner på actionscript-dialogen näst längst ner i programmet.
actionscriptdialogen
Du skriver in följande kod.


// Kod som utförs vid etta
on (release) {
if (_root.dis != "0" && tom != 1) {
// lägger till en etta i displayen, root.dis är variabelnamnet för displayen.
_root.dis += "1";
} else {
// Om displayen ska börja om utförs detta
_root.dis = "1";
tom = 0;
}
}
// detta är samma som ovan men sker vid tagentbordstryckning
on (keyPress "1") {
if (_root.dis != "0" && tom != 1) {
_root.dis += "1";
} else {
_root.dis = "1";
tom = 0;
}
}


Gör lika dant för alla siffror.
På punkt-knappen skriver du in följande kod.

// se kommentarer från knappen B1, tom och punkt är två variabler
on (release) {
if (tom != 1 && punkt == 0) {
_root.dis += ".";
punkt = 1;
} else {
if (punkt == 1) {
// kollar om det finns flera punkter,
// isf skriv det ut ett felmedeland i displayen
// och allt nollställs
_root.dis = "Error kan bara ha en punkt";
var bak = "0";
var operand = "+";
var tom = 1;
var punkt = 0;
} else {
_root.dis = "0.";
tom = 0;
}
}
}
on (keyPress ".") {
if (tom != 1 && punkt == 0) {
_root.dis += ".";
punkt = 1;
} else {
if (punkt == 1) {
_root.dis = "Error kan bara ha en punkt";
var bak = "0";
var operand = "+";
var tom = 1;
var punkt = 0;
} else {
_root.dis = "0.";
tom = 0;
}
}
}


För likamedknappen (=) skriver du följande kod.

// se kommentarer från knappen B1,
on (press) {
//rakna är en funktion i framen
rakna();
//operand är en varibel som håller reda på den sista operanden.
operand = "_";
}
on (keyPress "<Enter>") {
rakna();
operand = "_";
}


Nu vill ni nog se koden för framen, men för att skriva in den koden trycker ni på framen där ni har ritat allt. Sen skriver ni bara in all kod i actionscriptdialogen.

// initiserar alla variabler
var bak = "0"; //kommer ihåg förgående tal
var operand = "_"; //håller reda på vilken operand
var tom = 1; //Håller koll på om displayen ska tömmas eller inte
var punkt = 0; //Håller reda på om det redan finns punkter i displayen
_root.dis = "0"; // displayens variabel
// funktionen räkna utför all räkning förutom roten ur och negering
function rakna():Void {
if (operand == "+") {
// konverterar det till en "Number" och utför uträkningen
_root.dis = Number(_root.dis)+Number(bak);
}
if (operand == "-") {
_root.dis = Number(bak)-Number(_root.dis);
}
if (operand == "/") {
if (_root.dis != "0") {
_root.dis = Number(bak)/Number(_root.dis);
}
else {
_root.dis = "Kan inte dividera med noll";
var bak = "0";
var operand = "+";
var punkt = 0;
}
}
if (operand == "*") {
_root.dis = Number(bak)*Number(_root.dis);
}
bak = _root.dis;
tom = 1;
}
stop();


Nu börjar du ju bli en fena på detta.
Nu är det bara dags att fylla i de olika räknesätten.
För plus-knappen fyller du i följande kod.

on (press) {
// tillkallar funktionen rakna och lägger till
// vilken den seanste operanden är till minnet
rakna();
operand = "+";
}
on (keyPress "+") {
rakna();
operand = "+";
}


För minus

on (press) {
// tillkallar funktionen rakna och lägger till
// vilken den seanste operanden är till minnet
rakna();
operand = "-";
}
on (keyPress "-") {
rakna();
operand = "-";
}


För multiplikation

on (press) {
// tillkallar funktionen rakna och lägger till
// vilken den seanste operanden är till minnet
rakna();
operand = "*";
}
on (keyPress "*") {
rakna();
operand = "*";
}


För divition

on (press) {
// tillkallar funktionen rakna och lägger till
// vilken den seanste operanden är till minnet
rakna();
operand = "/";
}
on (keyPress "/") {
rakna();
operand = "/";
}

För rotenur

// räknar ut rooten ur.
on (release) {
if (Number(_root.dis)<0) {
_root.dis = "Talet måste vara positivt";
} else {
i = 0;
n = 1;
while (Number(i)<500) {
n = n-(((n*n)-Number(_root.dis))/(2*n));
i = Number(i)+1;
}
_root.dis = n;
}
}

Invers

// negerar talet i displayen
on (release) {
_root.dis = - _root.dis;
}

och slutgiltigen Clear

// nollställer allt
on (press) {
var bak = "0";
var operand = "_";
var tom = 1;
var punkt = 0;
_root.dis = "0";
}
on (keypress "C") {
var bak = "0";
var operand = "_";
var tom = 1;
var punkt = 0;
_root.dis = "0";
}
// för både stora och små c
on (keypress "c") {
var bak = "0";
var operand = "_";
var tom = 1;
var punkt = 0;
_root.dis = "0";
}


Grattis!! Nu har du din miniräknare.