Avatar billede Slettet bruger
08. oktober 2006 - 09:51 Der er 4 kommentarer og
1 løsning

Klikbare billeder - hvorfor virker det ikke?

Hej alvidende eksperter.

Jeg arbejder på et website, hvori der indgår et flash-element til visning af thumbnails i 8 x 4 rækker.
Visningen fungerer fint, men de skal være klikbare. No problem, det har jeg gjort så mange gange før. Meeen så let skulle det ikke gå.

Jeg anvender, i modsætning til tidligere tiders håbløse serialisering, AMFPHP til at sende informationer til og fra MySQL.

MOVIECLIPS på scenen og i library:
På scenen: "thumbnails_mc" <- er helt tom
I library: "thumbnail", linkage: "thumbnail" - heri ligger et tomt MC, ved navn "thumbnail_mc.

Dvs. når et billede indlæses: ("13" er et eksempel) thumbnails_mc->thumbnail13->thumbnail_mc. Sidstnævnte bliver erstattet af et billede, så jeg ønsker nu at "thumbnail13" bliver gjort klikbar.

var looptaeller = 0;
for (raekker=0; raekker<4; raekker++) {
  for (kolonner=0; kolonner<8; kolonner++) {
    thumbnail = _root.thumbnails_mc.attachMovie("thumbnail", "thumbnail"+(looptaeller), looptaeller+100, {_x:looptaeller*111, _y:raekker*81});
    thumbnail.id = re.result.getItemAt(looptaeller).element_id;
    thumbnail.onMouseDown = function() {
    trace("Du klikkede på billede "+this.id);
}

if (re.result.getItemAt(looptaeller).element_id) {
  thumbnail.thumbnail_mc.loadMovie("http://www.website.net/designs/thumb/"+re.result.getItemAt(looptaeller).element_id+".jpg");
}
looptaeller++;


Hvad sker der så?
Der bliver oprettet 32 movieclips, hvad enten et billede indlæses på pladsen eller ej.
Men: ved klik på et billede, giver traceren 28 stk. "undefined" samt 4 tal (fordi jeg p.t. har 4 billeder i databasen).
Uanset hvad jeg klikker på, antager .id den sidste værdi - på mit website vises altid det sidste billede.

Men hvad skal der ske?
Jo altså; traceren skal blot vise id-nummeret på det thumbnail-billede, man klikker på.

Kan nogen hjælpe?
Avatar billede Slettet bruger
08. oktober 2006 - 09:56 #1
Hvis det kan kaste et klarere lys over sagen; her er AMFPHP-klassen, der returnerer de nyeste poster i databasen:

<?php
class Hentnyeste
{
    function Hentnyeste()
    {
        $this->methodTable = array
        (
            "say" => array
            (
                "access" => "remote",
                "description" => "Pings back a message"
            )
        );
    }

    function say()
    {
   
        // Hent de nyeste poster fra databasen
                   
        include "../../connect.php";
        $sMessage = mysql_query("SELECT element_id, stoerrelsex, stoerrelsey FROM element ORDER BY element_id DESC LIMIT 32");
        return $sMessage;
    }
}
?>
Avatar billede john_westcoast Nybegynder
08. oktober 2006 - 10:42 #2
Avatar billede mat Nybegynder
08. oktober 2006 - 12:48 #3
onMouseDown affyres bare musen trykkes ned et vilkårligt sted i en flashfilm, du leder nok efter onRelease, så vil jeg tro det virker.

mvh mat
Avatar billede Slettet bruger
08. oktober 2006 - 16:52 #4
Ahr, HVAAAAD mand - det var jo bare det, der skulle til :-)
Hvad har jeg dog tænkt på.

Mange tak. Smid svar, så får du point.

Att. Westcoast, jah jeg har med vilje ikke afsluttet de spørgsmål, hvor jeg ikke har fået svar og hvor bolden ligger "ude". Flere af spørgsmålene er stadig aktuelle, men jeg kigger dem lige igennem og afslutter, hvor der afsluttes kan.
Avatar billede mat Nybegynder
08. oktober 2006 - 17:00 #5
aight
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