28. marts 2005 - 19:34Der er
23 kommentarer og 1 løsning
Bileder fra Mysql ind i flash
Hej i nørder derude, jeg har brug for lidt hjælp...
Jeg har en MySQL database med en tabel der hedder contacts, som indeholder 7 rækker hvoraf den ene er en sti til et billede f.eks mig.jpg.
på nuhværende tidspunkt er der kun 3 billeder i databasen, men der vil komme mange flere.
disse billeder vil jeg gerne have ind i flash via php, i et MC der hedder picholder, på en sådan måde at hvis der bliver opdateret i databasen vil det blive opdateret på sitet.
det er lykkeds mig at få tekst ind på den måde men billederne vil simpelt hen ikke.
Hvis du har fået Flash til at snakke direkte med databasen, skal du nok kontakte Macromedia, som så står klar med en milionkontrakt til dig ;o)
Du skal bare kalde den specifikke url i stedet for den relative på det php-dokument du henter ind. Altså: noget.sendAndLoad("http://www.domænenavn.dk*/Stor_textReturn.php",noget,"POST");
og en ny function. var pic = new LoadVars(); pic.onLoad = showContentpicholder; function showContentpicholder() { var i; for (i=0; i<this.n; i++) { picHolder += "<b>"+this["picFile"+i]+"</b><br>"; } }
men det virker ikke snøft...
har prøvet trace igen men det skriver det samme som før.
Hvad udskriver din php-side hvis du kalder den udenfor Flash? Indeholder outputtet en streng der hedder noget i retning af "picFile=navnet på dit billede"?
Ok, vi må vist lige begynde forfra. Virker dit script i funktionen "showContentstor" du startede med at vise i spørgsmålet?
Hvis den virker, skal vi i forlængelse af den hente nogle billeder ind, ikke? Eller skal det ligge i en funktion for sig selv?
Jeg ville personligt bygge det op således, at når man alligevel henter alle variable, ville jeg også hente billeder (som du jo også gør nu). Billedstierne ligger så i dit LoadVars objekt, som du evt. kan tilgå fra andre funktioner. Når et billede så skulle vise, ville jeg skabe et tomt mc med createEmptyMovieClip() (slå det evt. op i hjælpen), loade billedet ind i det og flytte det hen hvor det skal placeres.
Hvis du stadigvæk fatter hat af hvad jeg ævle om, så forklar endelig mere præcis hvad det er du vil, så jeg kan læne mig op af det når jeg forsøger at forklare.
Det er helt rigtigt som du udlægger det, men jeg vil gerne have billederne ind via en function for sig selv så kan jeg altid bygge dem sammen hvis det bliver relevant.
Min function "showContentstor" virker rigtig fint, men det er desvære kun tekst.
I prinsippet er jeg ligeglad hvordan det bliver gjort bare det bliver gjort, så hvis du har en anden måde som er nemmere er det fint med mig. du er også velkommen til at lave min php om hvis det hjælper.... det jeg sider og laver nu er kun de indledende runder til mit site, jeg kan altid rette det til senere.
Når du henter dine variable ind via LoadVars objektet, bliver de liggende i det. Dvs. at du fra en anden funktion sagtens kan hente dine billedstier ind når du har brug for dem - uden at hente php-dokumenter igen og igen.
Nu er jeg ret dårlig til at lege clairvoiant, så jeg ved ikke hvordan og hvornår du vil hente billederne ind. Men hvis vi er ude i, at du vil hente et billede der skal matche en tekst, kunne jeg forestille mig noget i retning af det her:
function hentBillede(nr:Number) { // nr indikerer hvilket billede der skal hentes this.createEmptyMovieClip("mc" + nr, this.getNextHighestDepth()); eval("mc" + nr).loadMovie(eval("LoadVarsobjekt.pic" + nr)); eval("mc" + nr)._x = 100; // Sætter x-positionen eval("mc" + nr)._y = 100; // Sætter y-positionen }
Tænkte det bare som en udvidelse af scriptet i frame 1. Du skulle så smide noget script på knapperne der fortæller hvilket billede de skal hente - eller et script på en knap, der automatisk tæller op eller noget i den retning.
Men hvad er det helt præci du vil lave? Fortæl bare i store træk. Er det til et galleri, en webshop eller noget helt tredje?
det er det samme billede i alle rækker som jeg bruger som du kan se.
Første frame i min flash ser sådan her ud
var pic = new LoadVars(); pic.onLoad = showContent;
function showContent() { var i; for (i=0; i<this.n; i++) { loadMovie(this["picFile"+i], _root.picHolder); } } stop();
min knap ser sådan her ud on (release) { showContent(); pic.sendAndLoad("billede.php", pic, "POST"); }
Dette virker Men du siger noget med at jeg ikke behøver at kalde mit php hvergang og jeg vil gerne have at den henter alle billederne ind i hver deres MC.
Når du siger "virker", hvordan virker det så? Umiddelbart ser det ud som om alle billeder bliver loadet ind i samme mc, hvilket resultere i at du overskriver det samme billede igen og igen. Er jeg helt forkert på den?
Bruger du den funktion jeg snakkede om tidligere, kan du supplere et argument til den. Det betyder at du, når du trykker på din knap delt kan specifiere at du vil hente billede 3 ind samt at du ikke henter variablen fra php, men i stedet i det LoadVars objekt der allerede én gang har haft snablen nede i php'en.
jeg har fundet ud af det... men jeg syntes aligevel du har været meget hjælpsom selv om det ikke var helt det der blev løsningen... så hvis du skriver et svar så syntes jeg du har fortjent nogle point.
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.