Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Objecter kan opbevare informationer og værdier i form af variabler ligesom hvis du bare skrev: top = 400; Men derudover virker de som en slags movieclips bare uden at de eksistere rent grafisk. De fungerer mest bare som en kasse til at opbevare ting i. Du kan lave flere kasser der indeholder de samme ting (top = 0; bottom = 400 osv...) Du kan altså også lave et object der hedder 'box' og ligeledes med screen indeholder variablerne top, bottom, left og right. Dette gør det nemmere at få overblik over ens informationer.
Det kan for eksempel udvides til at du har en anden funktion, der tager et enkelt argument, som er et objekt med 4 properties istedet for 4 argumenter. For eksempel kunne det være en funktion, der tog ovenstående objekt og tegnede det som en boks på skærmen.
Det smarteste ved objekter er dog ikke kun muligheden for at konstruere dem som ovenstående, men derimod at lave dem som en instans af en foruddefineret klasse:
function Vektor(x,y) { this.x = x; this.y = y; } myVector = new Vector(x,y); trace(myVector.x+","+myVector.y);
Det fungerer lidt på samme måde - kan blot udnyttes i højere grad!
Som pyroman er inde på så er det en glimrende metode til at holde styr på variabler. Screen er måske ikke lige det bedste eksempel, da der formodenligt ikke vil være mere end et sæt værdier. Bedre eksempel må være med navne/brugere:
Her kan du nu til hver en tid finde en brugers data ved at hente den "nemme" variabel 'navn'
trace(bruger1.navn) trace(bruger2.navn)
Det er noget simplere end at gå i selvsving og opfinde nye variabler hele tiden. navn1, navn2, navn3 osv.
Lad os lige tage det avancerede eksempel med :
bruger = function (navn, efternavn) { this.navn = navn; this.efternavn = efternavn; }; bruger.prototype.flink = "ja"; // kan bruges hvis vi vil initialisere alle brugere til at være flinke fætre nikolajdu = new bruger("nikolaj", "ankjær"); telemuzen = new bruger("tele", "muzen"); trace(nikolajdu.flink); nikolajdu.flink = "ok godt så"; // overskriver værdien flink for telemuzen; trace(nikolajdu.flink); delete (nikolajdu.flink); // fjerner nikolajdu's status som flink, men da det er bygget af en prototype, så vil status altid vende tilbage til den af prototype satte værdi - altså "ja" trace(nikolajdu.flink); delete (nikolajdu); // fjerner objektet og alle dets properties
function Bounds (screen) { hvordan skal man hente de properties? } Jeg har lidt svært ved at overskue det, : -D
Det smarteste ved objekter er dog ikke kun muligheden for at konstruere dem som ovenstående, men derimod at lave dem som en instans af en foruddefineret klasse: hvad mener du helt præsist?
Mener du at man kan lave instancer at screen objectet? eller?
nikolajdu>> havde ikke lige set dit indlæg. Men det er vel svaret på mit spgs. til barklund.
De nye instancer laves bare som - new bruger("", ""); Hvad er det som man laver en ny instans fra? bruger.proto.flink eller function bruger? Eller er prototypen en slags egenskab? Shit hvor er der mange ting man skal holde styr på!!
trace(nikolajdu.flink); nikolajdu.flink = "ok godt så"; Mener du at "ok godt så" kommer i output vinduet? hvis du kun skriver trace(nikolaidu.flink); så kommer der et "ja"?? eller?
når du laver en function, så er det samtidig også en klasse...!
Hvis du er skarp til engelsk, bør du følge denne "lille" introduktion til object orienteret programmering i flash 5 (gælder også flash MX): http://www.debreuil.com/docs/ch01_Intro.htm
Derefter vil du være langt bedre rustet til hele denne samtale - for ikke at sige, at du vil have en viden der er denne samtale en del overlegen :o)
barklund>> jeg har læst den for lang tid siden, men tror at jeg skal gennemgå den igen, første gang man ser den er det bare black volapyk, men nu har jeg læst nogle forskellige bøger omkring det OOP, så jeg tror at jeg forstår mere af den nu.
ok, så forstod jeg det, nikolajdu.flink = "ok godt så"; // overskriver værdien flink for telemuzen; første gang man tracer bliver det ja, hvis man vil have brugeren til at være "bad" kan man overskrive protoypen "ja" ok? er det rigtigt forstået? Første gang behøves ikke at være ja, hvis man har overskrevet "ja", før man tracer!?
bruger = function (navn, efternavn) { this.navn = navn; this.efternavn = efternavn; }; bruger.prototype.flink = "ja"; // kan bruges hvis vi vil initialisere alle brugere til at være flinke fætre nikolajdu = new bruger("nikolaj", "ankjær"); telemuzen = new bruger("tele", "muzen");
trace(nikolajdu.flink); - her bliver det er "ja"
nikolajdu.flink = "ok godt så"; - her overskriver du "ja" med "ok godt så"
trace(nikolajdu.flink); - her bliver det "ok godt så"
Det her eksempel, kunne f.eks bruges til dårlige betalere, så fra starten er alle "gode betalere", men hvis de ikke betaler kan man overskrive dem som "dårlige betalere"? Har jeg forstået det rigtigt?
Under prototypen er det endnu mere anvendeligt at gemme funktioner:
bruger = function (navn, efternavn) { this.navn = navn; this.efternavn = efternavn; }; bruger.prototype.flink = "ja"; bruger.prototype.getName = function() { return this.efternavn+", "+this.navn; } // kan bruges hvis vi vil initialisere alle brugere til at være flinke fætre nikolajdu = new bruger("nikolaj", "ankjær"); telemuzen = new bruger("tele", "muzen");
Barklund>> Når du tilføjer dig selv som ny bruger, findes du så også oppe ved mig og nikolaj(variablerne over trace), eller findes du kun i det øjeblik man tracer? Jeg mener hvis man skal tilføje nye brugere, kan man så gøre det via trace (new bruger("morten","barklund").getName()); // "barklund, morten"
Eller skal man tilføje brugeren oppe ved: nikolajdu = new bruger("nikolaj", "ankjær"); telemuzen = new bruger("tele", "muzen");
Hvad mener du helt præcist med at "tilføje en bruger"?
Ja, der bliver lavet en instans af klassen "bruger", men da den ikke bliver gemt i nogen variabel, så lever den kun mens scriptet udføres og "dør" herefter, da den ikke er gemt...
De to andre instanser (nikolaj og tele) bliver gemt i en variabel hver, så disse kan hentes frem senere...
ja, men trace functionen virker jo kun i Flash, så der er vel intet formål med at lave en bruger i trace((barklund = new bruger("morten","barklund")).getName()) eller?
Så bliver den gemt i variablen "barklund" og med det samme brugt til at kalde "getName()"...
Når den er brugt findes den ikke mere!? Det er det jeg mener med at der ikke er noget formål med at lave en trace command, men hvis den defineres sammen med (nikolaj, tele) så kan man bruge den.
trace er et debugging feature og bliver bare brugt for at illustrere objekterne og deres metoder i denne sammenhæng - traces bliver fjernet i den kompilerede swf (så hut jeg visker) - du skal ikke ligge så meget i det :)
mat >> traces bliver kun fjernet, hvis du klikker "Omit Traces" til i Publish Settings - den almindelige player ignorerer dem dog, men debugging playeren kigger skam på dem...
http://www.macromedia.com/devnet/mx/flash/articles/actionscript2.html Den her må være den beste forklaring jeg har læste, i forhold til MX. Jeg købte bøgen før jeg fandt denne link på nettet. Colin Moock er fantastisk til at forklare OOP, i hvert fald hvis man har engelsk som første sprog, som mig. Undskyld min bad-ass dansk grammer ;oP
Det var en lang en - men jeg kommer vist lidt for sent ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.