18. juni 2004 - 14:22Der er
23 kommentarer og 1 løsning
load jpg (sti) fra access databse og se billedet i flash
Jeg har en database med forskelligt info som bliver læst i min flash fil, og det virker også fint. Ud over det har jeg så lavet en tabel hvor feks "image/1.jpg" link ligger. Spørgsmålet er så nu hvordan jeg ser billedet i flash filen. Hvis jeg laver en test med at lave en tekst og ligge variable ind, ser jeg selvfølgelig "image/1.jpg" så der er hul igennem, jeg ved bare ikke hvordan jeg får den til at vise billede.
Skal der laves helt om i det script der køre imellem database og flash, eller er det bare en anden måde jeg skal hente når det gælder biledet. håber jeg har forklarede mig korrekt.
Du skal ikke hente noget på en anden måde, du skal snarere bruge det du har hentet på en anden måde.
For at hente et billede ind i Flash kan du anvende loadMovie, som kan hente billeder ind i et movieclip. Lav derfor et mc som du kalder "mc". Derefter skriver noget i retning af det her, når du er sikker på, at din variabel er hentet fra databasen:
Tusind tak, det vil jeg lige prøve når jeg kommer hjem, det lyder som om at det var det jeg manglede... Jeg ved altså ikke hvordan man giver point for rigtig svar, så det må du lige fortælle og så kigger jeg tilbage når jeg kommer på arbejde igen, med mindre jeg er på nettet før.
lettere at give dem nu, da jeg måske glemmer det mandag, men jeg skal nok spørge løs hvis der er andet, muligt jeg har et par ? senere når jeg har fået det her til at virke.. men takker igen for det hurtige svar...
har prøvet med alt fra det du skrev til andre muligheder, men ikke det rigtige i nu. Jeg har et asp script hvor jeg har brugt "email" til billedet i stedet, da jeg ikke skulle bruge email til noget, så den henter bare image/billedet.jpg Jeg fandt nemlig ud af at den ikke kunne nøjes med at hedde 1.jpg, så ville den ikke vise billede hvis jeg hentede det direkte.. Men at hente det via min variables er ikke løkkedes i nu, ????? håber du kan hjælpe mig på vej, det er sku lidt dyrt at sidde med ISDN hjemme......
kan godt være at jeg har misforstået det hele, men når den kan skrive dem ind i de text felter der er og jeg ser den text der er fra databasen, burde den variables der kommer fra "email" som er image/billede.jpg jo egentlig virke, men kan altså ikke finde ud af at loade den.. det virker fint hvis jeg prøver med at hente et jpg direkte med loadmovie, kan bare ikke få den til at hente variables og vise billedet fra stien.
Det lyder meget som et "load order" problem. At variablen ikke er ordentligt hentet når du vil bruge den i loadMovie. Henter du ind med loadVariables eller loadVariablesNum?
..loadVariables er en uddateret måde at hente ting og sager på, og kræver et vist kendskab (og finurlige omveje) at få til at fungere ordentligt. Så medmindre du sidder med Flash 5.0 eller tidligere, så lad være med at bruge det.....
Dit problem med loadVariables er at du selv må tjekke hvornår noget er hentet ind. Dvs. at man skal igang med noget onClipEvent(data) og holde styr på hvor hvad ligger. LoadVars har metoden onLoad som klarer det hele på bedste vis. Grunden til at du rent faktisk kan se at der sker noget i dine tekstfelter, skyldes at de hele tiden står og spørger "er variablen kommet?". Det gør de før den er kommet, når den er kommet og efter den er kommet. Du kan opnå noget af det samme med onClipEvent(enterFrame) men udover ikke at være særlig køn scripting, bliver det også hurtigt ret forvirrende.
ok.. jeg er nogenlunde med, og kan også godt få det til at virke ved at lave et helt ny projekt, men kan ikke få det til at virke i den gamle og slet ikke så den også henter de andre ting, men hovedsagen er at nu vil den da hente den vej, så skal jeg bare have bakset det sammen så de andre ting også kommer med, og vigtigts af alt når du trykker vidre i databasen, skal den jo selvfølgelig skifte billedet med også. Jeg kigger lidt mere på det, muligt at jeg skal hente de andre ting via den vej også, jeg leger lidt vidre, og håber at det løkkedes at få dem sat sammen...
Så virker det endelig med at vise begge dele ved at have fjernet noget script, der bare lå i vejen... jeg er jo ikke den store haj til den slags, men jeg lære lidt hen af vejen.
Jeg kan bare ikke få den til at skifte billedet med, men det er jo nok fordi at den bliver hentet af loadVars alene og ikke sammen med det andet i loadVariables.
Ved ikke helt hvordan jeg knuser den, håber du har et par forslag. Jeg var nemlig nød til at loade det andet via LoadVariables da jeg ikke ved hvordan jeg skulle loade det ellers.
Den kode du du har fundet, burde efterhånden kun eksisterer på et museum ;o) Macromedia har de seneste 2-3 år forsøgt at få folk til at lade være med at bruge tellTarget og mon ikke det bliver helt afskaffet i den næste version af Flash? Selvfølgelig er det svært at udrydde, når der ligger så mange uddaterede tutorials rundt omkring på nettet.....
Det du vil opnå, kan bedst opnås ved at hente alle aktuelle billedstier på én gang. I dit eks. vil man ved hvert tryk på knappen sende en forespørgsel til webserveren der svarer igen med meget få information. Det belaster både server og folks tålmodighed (hvis den skulle være en anelse sløv).
I stedet bør du overveje at hente alle billedstier med det samme. Det kræver naturligvis en smule amstrukturering i din ASP og Flash-kode, men er i mine øjne det hele værd. Prøv at få asp-siden til at spytte noget i den her retning ud:
&billedsti1=stien til mit første billede& &billedsti2=stien til billede 2& &billedsti3=billede 3&
I Flash kæder du så stien sammen med din knap, samt det du har hentet ind via LoadVars-objektet (giv en knap navnet "knap", og skriv noget i retning af det her i en frame på main timeline):
hmm havde lige skrevet en masse, og så sletter den det bare da jeg trykkede på send knappen...
Her er readdb.asp filen, Så må du fortælle mig om det kan betale sig at ændre den.
"email" er den der henviser til image stien
<% ' Encode a number from 0..15 to a single hex digit Function HexChar(ByVal i) If i < 10 Then HexChar = Chr(i+Asc("0")) Else HexChar = Chr(i-10+Asc("A")) End If End Function
' Encode the control and punctuation characters in a string to %xx hex values Function URLEncode(ByVal s) Dim result, ch Do While Len(s) > 0 ch = Asc(s) s = Right(s, Len(s)-1) If (ch >= Asc("a") And ch <= Asc("z")) Or (ch >= Asc("A") And ch <= Asc("Z")) Then result = result & Chr(ch) ElseIf ch = Asc(" ") Then result = result & "+" Else 'result = result & "*" & ch 'result = result & "!" & (ch/16) & (ch mod 16) result = result & "%" & HexChar(Int(ch/16)) & HexChar(ch Mod 16) End If Loop URLEncode = result End Function
problemmet er vel også at jeg ikke har billeder på alle poster, men kun på nogle.
måske man kunne kalde jpg filen det samme som det ID-nummer jeg giver hver post, og så hente billedet ud fra det når det blev skiftet... ( bare en tanke )
Jeg er jo desværre ikke den store haj, og bruger tit tutorials til at lave noget så jeg samtidigt lære lidt af hvad jeg laver.
men smid et svar så jeg kan give dig nogle flere point for din tid.
Nu er det meget længe siden at jeg selv har haft fingrene nede i asp, så vil ikke spille klog på hvordan det præcist skal gøres. Men i hovedtræk kan du jo lave en udvidet sql-statement der henter alle, eller i hvet fald flere, poster. Disse poster kan så via en løkke udskrived i en fornuftig struktur - altså nede til sidst i response.write-delen(spørg evt. i asp-kategorien)
Din ide med i stedet at bruge id- eller billed-navne som variable er ikke helt tosset. Det vigtige er bare inde i flash at vide nogenlunde præcist hvad disse variable kommer til at hedde.
Hvis jeg skal ha' flere point, skal vi til at oprette et nyt spørgsmål osv. Så jeg klarer mig nok med dem jeg allerede har fået ;o) Du kan evt. fortsætte i en ny tråd, når du kommer skridtet videre og har fået helt styr på asp-outputtet. Så er der givet flere som svarer, og du får lidt hurtigere respons....
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.