Avatar billede elnino Nybegynder
13. november 2001 - 23:51 Der er 12 kommentarer og
2 løsninger

classes og objecter

Jeg har lige siddet og læst et kapitel om classes og objekter i o\'reily...Spændende var det jo, men der stod aldrig noget om hvordan man kan bruge dem på movieclips......???
Hvor finder jeg mere info/tutorials om at lave clasess og objecter til flash?

ElNINO
Avatar billede elnino Nybegynder
13. november 2001 - 23:59 #1
Mere precist:
Hvordan definere jeg et movieclip til at tilhøre en sepecile classe som jeg selv har defineret....
Avatar billede nikolajdu Nybegynder
14. november 2001 - 03:25 #2
mest alm brugte ref er \"this\"

this henviser altid til det objeckt det er brugt på. Man kan derfor hurtigt identificere et object.

f.eks

onClipEvent (load) {
    this_x=400;
}


Vil sætte positionen til 400 ligegyldigt om du kener objektes navn eller ej.

Udvidet kan man forestille sig en funktion:

function minFunktion (hvilketObjekt) {
    hvilketObjekt_x=400;
}

Nu kan alle MovieClips eller objekter kalde funktion og så blive placeret på 400.

Hvis \"clip1\" kalder funktionen med minFunktion(this) bliver det placeret på 400 osv. osv.

/Nikolaj
Avatar billede lingoman Nybegynder
14. november 2001 - 09:21 #3
Hej med jer,
Spændende spørgsmål som jeg desværre endnu ikke kender svaret på.
Det skulle der gerne kunne ordnes, da jeg har samme bog..
Vender tilbage når jeg har fundet ud af det :)
mvh geo
Avatar billede elnino Nybegynder
14. november 2001 - 12:17 #4
Nikolajdu:
Det lyder som en afgranset for for OOP. Problemet her er at jeg ikke helt kan se hvordan man definere en klasse, der så har nogle egenskaber. Måske senere en unerkalasse der så kan arve nogle egenskaer fra en superklasse....
Gør man det så ved at lave en funktion og så få sine mc\'er til at kalde funktionen?
Problemet med det er at man så ikke bare kan hente enkelte værdier fra objekteren i klassesn...[tror jeg :-)]

Det kunne jo være spænende hvis man kunne bruge duplicatMovieClip så de nye clips tilhøte forskeliige klasses....
Du må endlig sige til hvis det ikke er helt klart- for det er det ikke for mig...

Lingoman: glæder mig :-)

Avatar billede elnino Nybegynder
17. november 2001 - 21:31 #5
Jeg har skrevet til selveste Colin Moock om at det var lidt af et problem med hans bog. Ham skrev tilbage dagen efter:

hi michael,
this is indeed an important topic. here are some thoughts:

1) it is possible to extend the MovieClip class with a custom class by
linking the prototype chain like this:
myClipClass.prototype.__proto__ = MovieClip.prototype;

2) of course, using:
new myClipClass();
won\'t get you a movieclip. so, you have to attach the clip in the
constructor manually. then you might also want to store a reference to the
clip in the constructor. and you might want to store a reference back to the
object in the clip, like this:

function myClipClass (parentClip) {
  // attach a clip
  myClipClass.count++;
  parentClip.attachMovie(\"myClipClass\", \"myClipClass\" + myClipClass.count,
myClipClass.count);

  // store a ref to the clip
  this.clip = parentClip[\"myClipClass\" + myClipClass.count];

  // store a ref back to the obj
  this.clip.obj = this;
}

3) you can also do things the other way around, by making a clip first and
then assigning it some class. see:
http://www.quantumwave.com/html/flash5_mc_inheritance.html


hope that helps,
colin


Jeg har lige fået det og vil kigge lidt på det. I må meget geren sige til hvis i får noget ud af det :-)

/Michael


Avatar billede nikolajdu Nybegynder
17. november 2001 - 23:56 #6
Jeg tror sgu jeg skriver til George Bush - Har egentligt et par spørgsmål jeg godt ville have svar på. ;-)

Stærkt træk og nice at manden tager sin tid til det :-)

kigger på det senere.

/Nikolaj
Avatar billede elnino Nybegynder
18. november 2001 - 00:37 #7
Okay, jeg har lånt noget kode rundt omkring og prøvet at strikke nogle ting sammen. Nedestående script kreaer et movieclip der tilhøre classen Square:

stop ();
function Square () {
    this._x = 100;
    this._y = 100;
    this._height = 5;
}
MovieClip.prototype.setClass = function (c, args) { this.super = c;this.super(args);delete this.super;this.__proto__ = c.prototype;};
attachMovie(\"myClipClass\", \"circle1\", 1);
circle1.setClass(Square, 10);


Man skal nemlige bruge attachMovie til at give den en fysisk form [her hedder mit linkage i mit library \"myClipClass\"]
Jeg er lidt i tvivl omkring:

MovieClip.prototype.setClass delen

1)this.__proto__ = c.prototype
det forstår jeg. Movie clippet [this] der bliver kalds class refenrence [__proto__] bliver sat lig med min selvdefineret classes [dens prototypr]

Det er alt det før med super jeg er i tvivl om og hvorfor det så hedder \"MovieClip.prototype\". Henviser det til den classe som alle mc\'er tilhøre?

Håber der kan komme mere ud af diskutionen:-)

ElNino

Avatar billede lingoman Nybegynder
18. november 2001 - 10:12 #8
Tålmodighed, ElNino!

De fleste spørgsmål her på eksperten, rykker min viden et skridt længere.
Dit spørgsmål har tvunget mig til at tage et kvante spring, og det kan jeg kun takke dig for !
Jeg ved at der er andre her på eksperten der bruger prototype constructor, men de er meget få.
Langt de fleste klarer sig med actionScript til \'husbehov\', no offence! ;-)

Jeg har nu læst de relevante sider i Colin Moock\'s bog men der går lidt tid inden denne nyerhvervet viden siver ind og kan blive omsat til praktisk viden i min bitte hjerne. Jeg håber derfor at du vil give os en chance til at indhente dig ved at lade spørgsmålet stå åbent i længere tid, så kommer debatten helt sikkert igang.

I mellemtiden kunne du jo oprette dig som subscriber på en virkelig hardcore actionScript mailinglist:
[Flash coders]  http://chattyfig.figleaf.com/.
De fleste spørgsmål/svar på Flash Coders er alt for avanceret for at gavne mig på nuværende tidspunkt. Alle emner er som regel udokumenteret teknikker. Subscriberne på Flash Coders klarer de mest fantastiske ting så let som en leg, og  prototype contructoren er et hverdagsord for dem.

Som et eksempel kan jeg nævne et spørgsmål som nikolajdu oprettede for et stykke tid siden.
[Skift operator]  http://www.eksperten.dk/spm/103070
Der var mange der kom med deres bud på en mulig løsning, men ingen virkede indenfor spørgsmålets rammer.
I lang tid så det ud til at man måtte ty til javaScript for at kunne klare det...
Det samme spørgsmål var op og vende på Flash Coders da andre også havde lagt mærke til denne mangel i actionScript. Og igår kom der så et komplet svar fra tyskland, som du kan læse om i http://www.eksperten.dk/spm/103070

Vær forberedt på at modtage 100 mails /dag om emner som er relevant til dit spørgsmål. (colin moock bruger den også, samt philip kerman og andre store navne indenfor actionScript)

Håber at du får lige så stor glæde af Flash Coders som sitet er for mig. Det skal lige siges at jeg ikke er nogen aktiv bruger på forumet da min viden er pinlig mangelfuld

vender tilbage når jeg kan bidrage med konkrete indlæg til dit spørgsmål.

mvh geo
Avatar billede elnino Nybegynder
18. november 2001 - 19:05 #9
Lingoman: tak for linket, og selvfølgelig lader jeg det stå åbent:-)
Avatar billede lingoman Nybegynder
17. december 2001 - 18:00 #10
Hey elnino,
Jeg har ingen svar til dette spørgsmål endnu, men har du set dette ?

Robin Debreuil\'s Object Oriented Programming Tutorial
http://www.debreuil.com/docs/ch01_Intro.htm
mvh geo
Avatar billede elnino Nybegynder
05. januar 2002 - 20:55 #11
lingoman -> har været der inde og sidet lidt og leget. Ret svært men biver da ved :-)
Avatar billede elnino Nybegynder
15. januar 2002 - 11:32 #12
Lingoman, kan du ikke lige sende et svar så jeg kan lukke sprg og dele pointent....

Tak for en god diskution, tror det er lidt for meget for mig lige nu, men nu kender man jo noget til det..
Avatar billede lingoman Nybegynder
15. januar 2002 - 15:45 #13
tak elnino, jeg er tilfreds med 0 point da jeg ikke har været i stand til at besvare dit spørgsmål. :)
Avatar billede elnino Nybegynder
15. januar 2002 - 16:37 #14
Vil nu gerne give lidt for linket - der er stadig ingen der har kunne svare det ordentligt, men har da lært noget
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester