Avatar billede donslund Nybegynder
19. januar 2006 - 20:57 Der er 9 kommentarer og
1 løsning

Flerdimensionelt array

Det er sørme LAAAANG tid siden jeg har rodet med Flash, men det er jo stadig lige fedt.

Dog driller et flerdimensionelt array mig.

Jeg placerer et mc på stagen og får dens navn, x og y værdi. Dem vil jeg gerne have stoppet i et array sådan, at når jeg trækker med et andet mc får en ny linie i arrayet, men trækker man med et mc der har været trukket én gang før, så skal dens x og y i array blot udskiftes.
Avatar billede donslund Nybegynder
19. januar 2006 - 21:28 #1
Burde dette ikke kunne gøre det?

for (i=0;i<_root.controller.skader.length;i++){
        if (_root.controller.skader[i]==this._name){
            trace("fundet++");
            //værdi fundet så fjern den
            _root.controller.skader.splice(i,1);
        }
    }
    _root.controller.skader[skaderlength] = new Array(this._name,xen,yen);
Avatar billede barklund Nybegynder
19. januar 2006 - 23:02 #2
Ehm, hvorfor et array? Kan du ikke bruge et objekt i stedet? og derudover er det lidt rodet og der er fejl i - du sammenligner hele arrayet med navnet på dit movieclip. Brug hellere noget med:

found = false;
for (i=0;i<_root.controller.skader.length;i++){
    if (_root.controller.skader[i].ref == this){
      _root.controller.skader[i].xen = xen;
      _root.controller.skader[i].yen = yen;
      found = true;
      break;
    }
}
if (!found)
    _root.controller.skader.push({ref: this, xen: xen, yen: yen});
}

Det ser da lidt pænt ud - selvom rigtige klasser ville være pænere :)

--
Morten Barklund
Avatar billede donslund Nybegynder
20. januar 2006 - 10:40 #3
Jeg skal efterfølgende have arrayet med over i PHP, hvor det skal bruges til at danne billeder efter.

Men det er rigtigt, at din kode er pænere end min :-)
Avatar billede barklund Nybegynder
20. januar 2006 - 11:41 #4
Du skal jo alligevel serialisere det over til php somehow - det burde absolut ikke have nogen form for betydning for, hvordan du strukturerede dit actionscript. Tværtimod er de to ting helt uafhængige bare de har en protokol, som de benytter sig af :)
Avatar billede donslund Nybegynder
20. januar 2006 - 17:30 #5
Ja, nu tangerer det sort snak. Protokol ... det var sådan noget man blav krydset af i, i folkeskolen ;-)

Nej, bare jeg får det med over i PHP, så skal jeg nok få det til at blive til noget.

Leger lige med dit forslag.
Avatar billede donslund Nybegynder
20. januar 2006 - 17:48 #6
Min kode ser nu således ud:

on (release) {
    xen = Math.round(this._x);
    yen = Math.round(this._y);
    found = false;
    for (i=0;i<_root.controller.skader.length;i++){
        if (_root.controller.skader[i].ref == this){
          _root.controller.skader[i].xen = xen;
          _root.controller.skader[i].yen = yen;
          found = true;
          break;
        }
    }
    if (!found) {
        _root.controller.skader.push({ref: this, xen: xen, yen: yen});
    }
    stopDrag ();
}

Hvis jeg tracer mit array, så får jeg bare [object object] ud af det.
Avatar billede donslund Nybegynder
20. januar 2006 - 20:39 #7
Okay. Det er løst. Smid et svar.
Avatar billede barklund Nybegynder
21. januar 2006 - 11:31 #8
Great :)

Du fandt ud af, at tilgå objekterne i array'et?
Avatar billede donslund Nybegynder
21. januar 2006 - 12:32 #9
Nej, ejg fik ikke det flerdimensionelle til at virke. Men lavede bare en streng med et andet tegn i som jeg kunne "explode" på i php.
Avatar billede barklund Nybegynder
23. januar 2006 - 10:25 #10
Well :)
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