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. 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,
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.
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.
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.
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. 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.
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";
}