Avatar billede Slettet bruger
02. maj 2005 - 15:50 Der er 6 kommentarer og
1 løsning

Hvordan gøres elementerne individuelt klikbare?

Hej eksperter.

Jeg har en smule problemer med følgende kode - beskrivelse følger:

_global.hentdesigns = function(side, kategori) {
    var rstring = new LoadVars();
    rstring.side = side;
    rstring.kategori = kategori;
    rstring.sendAndLoad("http://www.website.dk/finale/getdesigns.php", rstring, "GET");
    rstring.onLoad = function() {
        var mc;

        var positionx, positiony;

        var ids = this.returvar.split(",");
        for (var i = 0; i<ids.length; i++) {
            element = i+side*6;
           
            mc = _root.moving.createEmptyMovieClip("element_"+ element, element+6);
           
            // Følgende linier sørger for at placere vores elementer pænt - med 3 designs i hver række
            if (i<3) {
                positionx = i*170;
            } else {
                positionx = (i-3)*170;
            }
            if (i>=3) {
                positiony = 100;
            }
            mc._x = positionx+side*mw;
            mc._y = positiony;


            // flyt mc på plads via x og y
            mc.loadMovie("www.website.dk/finale/designs/thumb/"+ids[i]+".jpg");
// HER SKAL NOK VÆRE NOGET KODE....
        }
    };
};


Følgende fungerer:
Ud fra en kommasepareret liste, genereret og returneret af en PHP-fil, skal en række billeder vises. Billederne hedder eksempelvis 1.jpg, 7.jpg, 13.jpg etc. og der vises altid 6 pr. side.
Der oprettes movieclips ved navn "element_", efterfulgt af en variabel, der går fra 0 til 5 for side 1, 6-11 for side 2 etc.
Eksempel på overført streng: "5,8,10,11,19,31".
På første side peger movieclippet "element_0" på filen "5.jpg", element_1 på "8.jpg" og så fremdeles.

Billederne vises også korrekt - men der skal kunne klikkes på dem.

Mit problem er kort og godt at gøre dem individuelt klikbare. Klikker du på eksempelvis movieclippet "element_0", skal filen "visdesign?id=5", kaldes. "element_1" skal kalde "visdesign?id=8" etc.

Umiddelbart ville jeg tro, følgende linie kunne gøre det:
_root.moving.element_+i.onMouseDown = function() { getURL("getdesign.php?id="+ids[i],"_blank","GET"); }
... eller noget i den retning.

Såfremt der er behov for at jeg uploader FLA-filen, så sig endelig til.
Avatar billede pyroman Nybegynder
02. maj 2005 - 16:06 #1
_global.hentdesigns = function(side, kategori) {
    var rstring = new LoadVars();
    rstring.side = side;
    rstring.kategori = kategori;
    rstring.sendAndLoad("http://www.website.dk/finale/getdesigns.php", rstring, "GET");
    rstring.onLoad = function() {
        var mc;

        var positionx, positiony;

        var ids = this.returvar.split(",");
        for (var i = 0; i<ids.length; i++) {
            element = i+side*6;
         
            mc = _root.moving.createEmptyMovieClip("element_"+ element, element+6);
         
            // Følgende linier sørger for at placere vores elementer pænt - med 3 designs i hver række
            if (i<3) {
                positionx = i*170;
            } else {
                positionx = (i-3)*170;
            }
            if (i>=3) {
                positiony = 100;
            }
            mc._x = positionx+side*mw;
            mc._y = positiony;


            // flyt mc på plads via x og y
            mc.loadMovie("www.website.dk/finale/designs/thumb/"+ids[i]+".jpg");
// HER ER SÅ NOGET KODE ;)....
            mc.id = ids[i];
            mc.onRelease = imageClickHandler;
        }
    };
};
function imageClickHandler(){
  getURL("getdesign.php?id="+this.id, "_blank", "GET");
}



Prøv det...
Avatar billede Slettet bruger
02. maj 2005 - 20:49 #2
Nej, desværre... Billederne forbliver ikke-klikbare - og imageClickHandler kaldes aldrig.

Har lagt FLA-filen ud på www.vandret.dk/thumbs.fla - hvis du eller andre gider kaste et hurtigt kig. Den burde være lige til at køre.

:-)
Avatar billede rohaje Nybegynder
04. maj 2005 - 22:13 #3
_global.hentdesigns = function(side, kategori) {
    var rstring = new LoadVars();
    rstring.side = side;
    rstring.kategori = kategori;
    rstring.sendAndLoad("http://www.b-seen.de/finale/getdesigns.php", rstring, "GET");
    rstring.onLoad = function() {
        var mc;
        sidestatus(this.antalelementer, kategori); // Viser sidetallet
        _root.status.htmlText = "Side "+(side+1)+" af "+int(this.antalelementer/6+1); // Denne tæller antallet af sider
        _global.antalelementer = this.antalelementer;
       
        var positionx, positiony;
        var skygge;
        var ids = this.returvar.split(","); // Her har vi nu en kommasepareret liste
        // Nu behøver vi for så vidt ikke rstring mere. Find kommandoen, der sletter denne.
        for (var i = 0; i<ids.length; i++) { // Tæl fra 0 til og med 5
            element = i+side*6; // Denne sørger for at navngive elementerne, så designs på side 2 får et unikt navn.
           
            mc = _root.moving.createEmptyMovieClip("element_" + ids[i], element+6);
            holder=mc.createEmptyMovieClip("holder",0);
            skyggeting = _root.moving.skygge_mc.duplicateMovieClip("skyggeside" + ids[i], element);
           
            // Følgende linier sørger for at placere vores elementer pænt - med 3 designs i hver række
            if (i<3) {
                positionx = i*170;
            } else {
                positionx = (i-3)*170;
            }
            if (i>=3) {
                positiony = 100;
            }
           
            mc._x = positionx+side*mw;
            mc._y = positiony;
            skyggeting._x = mc._x;
            skyggeting._y = mc._y;
           
            // flyt mc på plads via x og y
            holder.loadMovie("http://www.b-seen.de/finale/designs/thumb/"+ids[i]+".jpg"); // Denne kalder et thumbnail - og virker fint
            mc.id = ids[i];
            mc.onRelease = imageClickHandler;
        }
        //_root.moving.skygge_mc.removeMovieClip();
    };
};
Avatar billede rohaje Nybegynder
04. maj 2005 - 22:14 #4
Du bliver nød til  enten
1.at vente et par frames med at sætte onRelease
2. lave et holder mc som i eksemplet ovenover og sætte onRelease på dens parent(mc)
Avatar billede Slettet bruger
05. maj 2005 - 16:06 #5
Tak - det kom til at virke jf. dit eksempel.
Du har dog besvaret som "Kommentar" - hvilket jo ikke gør mig i stand til at uddele point endnu...
Avatar billede rohaje Nybegynder
05. maj 2005 - 21:07 #6
Du får da bare et svar så :)
Avatar billede rohaje Nybegynder
06. maj 2005 - 08:27 #7
tak for det  :)
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