"Bo Dudek" <bo@FJERNbodudek.dk> wrote in message
news:9aas705bmfkf57i3jihgvgjjmltqp48ou9@4ax.com...
> Hola
>
> Indtil videre har jeg i mine mange flashprojekter hoppet let og
> elefant hen over classes - klasser, på dansk - i flash. Er der mon en
> venlig sjæl, der med 15 pæredanske ord kan beskrive, hvad man f.eks.
> bør bruge classes til?
Det er der nok forskellige holdninger til. Nogle vil sige at de gør et
større program enklere, andre vil sige at man med klasser bedre kan
videreudvikle et program. Du kan bruge klasser til at definere en datatype
og nogle operationer på denne datatype. Det er lidt udenfor rækkevidden af
det her emne at give en beskrivelse af alle de områder man kan bruge klasser
til at beskrive, men: hvis du f.eks. i dit program skal holde styr på
punkter i rummet kunne du lave en klasse til at disse
----------------------- filen Point.as -------------------------
class Point {
var x: Number
var y: Number
var z: Number
function Point(x: Number, y: Number, z: Number) {
this.x = x
this.y = y
this.z = z
}
}
----------------------- filen Point.as -------------------------
Nu har du en meget enkel klasse der dog indtil videre ikke gør andet end at
holde på koordinater. Du kan oprette eksempler (instanser) på klassen ved at
skrive
P = new Point(1,0,0)
Q = new Point(-1,0,0)
Du kan bruge de variable klassen har ved f.eks. at skrive
R = new Point(P.x+Q.x, P.y+Q.y, P.z+Q.z)
Nu har du et nyt punkt R der udgør vektor-summen af to andre punkter. Men
lad os sige du gerne vil kunne beregne afstanden mellem to punkter, normalt
ville du måske skrive
function Distance(x,y,z,x1,y1,z1) {
return Math.sqrt(x*x1 + y*y1 + z*z1)
}
Hvis du bruger klasser kan du tilføje denne operation til Point da det jo er
en operation der kan anvendes på punkter
----------------------- filen Point.as -------------------------
class Point {
var x: Number
var y: Number
var z: Number
function Distance(that: Point): Number {
return Math.sqrt(this.x*that.x + this.y*that.y + this.z*that.z)
}
function Point(x: Number, y: Number, z: Number) {
this.x = x
this.y = y
this.z = z
}
}
----------------------- filen Point.as -------------------------
Den nye funktion gør det muligt at få afstanden mellem to punkter P og Q ved
at skrive
dis = P.Distance(Q)
Klasser kan også kædes sammen så f.eks.
Ansat < Person
Dermed kan du genbruge en anden klasse. Når du definerer klassen Ansat
skriver du bare
class Ansat extends Person
{
...etc...
}
Men du må nok hellere finde en Actionscript 2 tutorial om emnet.
For mit
vedkommende går jeg ikke tilbage til direkte at bruge prototyper. Det er
meget lettere at fejlfinde klasser efter min mening.
Man kan sige at når du laver en klasse og definerer nogle variable og
funktioner i klassen, så giver du alle funktionerne kendskab til variablene
så når du giver objekter videre til diverse funktioner så har funktionerne
de data de skal bruge for at udføre deres opgaver; men selvfølgelig er der
nogle der har parametre, som Distance, der skal bruge et andet punkt for at
kunne færdiggøre udregningen af afstanden. Noget lignende kunne vi også lave
ved at skrive
function Distance(x,y,z) {
var x = x
var y = y
var z = z
return function(x1,y1,z1) {
return Math.sqrt(x*x1 + y*y1 + z*z1)
}
}
DistanceTo111 = Distance(1,1,1)
dis = DistanceTo(3,4,5)
Med DistanceTo111 har vi lavet en ny funktion der udregner afstanden mellem
(1,1,1) og ?
Med DistanceTo111(3,4,5) har vi lavet en udregning af afstanden mellem
(1,1,1) og (3,4,5).
Anyway, led efter tutorials om Actionscript 2. Her er nogle spredte
småtutorials jeg lige fandt.
http://www.video-animation.com/flash_15.shtml
http://www.debreuil.com/docs/ch01_Intro.htm
http://www.macromedia.com/devnet/mx/flash/articles/3d_classes.html
> Mvh
> Bo Dudek
>
www.bodudek.dk