Avatar billede dingo2 Nybegynder
18. juni 2004 - 14:22 Der 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.
Avatar billede _k Nybegynder
18. juni 2004 - 14:37 #1
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:

mc.loadMovie(navnetPåDenVariabelDuHarHentetFraDatabasen);

Så skal du lige sørge for at billedet ligger korrekt i forhold til swf'en. I dit tilfælde i en mappe som hedder image.

....that's it!
Avatar billede dingo2 Nybegynder
18. juni 2004 - 14:58 #2
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.

Men igen mange tak ( håber det virker )
Avatar billede _k Nybegynder
18. juni 2004 - 15:05 #3
Jeg skal lige lægge et svar, så kan du tildele mig point.

Men vent bare med at give mig dem til du ser om det virker. Og spørg endelig videre i denne tråd, hvis der er noget som driller.
Avatar billede _k Nybegynder
18. juni 2004 - 15:17 #4
...og så var det ligesom meningen at jeg skulle lægge det førnævnte svar. Men det ER jo fredag eftermiddag ;)
Avatar billede dingo2 Nybegynder
18. juni 2004 - 15:58 #5
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...
Avatar billede dingo2 Nybegynder
18. juni 2004 - 18:05 #6
kan desværre ikke få det til at virke, men prøver mig frem med lidt mere, for der skulle ikke være noget forkert i det jeg har gjort.
Avatar billede _k Nybegynder
18. juni 2004 - 22:49 #7
Hvordan henter du variablen ind fra din database?
Avatar billede dingo2 Nybegynder
18. juni 2004 - 23:52 #8
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......
Avatar billede dingo2 Nybegynder
18. juni 2004 - 23:58 #9
Tror lige jeg misforstod lidt af hvad du skrev.... mener du sådan her ???

loadVariables("http://website/readdb.asp", "", "POST");
Avatar billede _k Nybegynder
19. juni 2004 - 00:16 #10
Troede du havde fået variablene ind i Flash? Men som det er nu, udskriver du dem måske bare på en asp-side?
Avatar billede dingo2 Nybegynder
19. juni 2004 - 00:22 #11
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.
Avatar billede _k Nybegynder
19. juni 2004 - 00:26 #12
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?
Avatar billede dingo2 Nybegynder
19. juni 2004 - 00:31 #13
loadVariables

loadVariables("http://website/readdb.asp", "", "POST");
Avatar billede _k Nybegynder
19. juni 2004 - 00:36 #14
Så er det dér koen ligger begravet!

Brug LoadVars objektet i stedet:

minLoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  mc.loadMovie(this.navnetPåDenVariabelDuHarHentetFraDatabasen);
}
minLoadVars.load("http://website/readdb.asp");

..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.....
Avatar billede dingo2 Nybegynder
19. juni 2004 - 00:47 #15
skal den bruges sammen med loadVariables("http://website/readdb.asp", "", "POST");
det er jo den der henter de andre ting til mine felter...

eller skal bruges alene der hvor mit movieclip ligger

kan jo være at det er sat forkert op når nu det andet virker
Avatar billede _k Nybegynder
19. juni 2004 - 11:14 #16
LoadVars skal erstatte loadVariables.

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.
Avatar billede dingo2 Nybegynder
19. juni 2004 - 15:28 #17
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...
Avatar billede dingo2 Nybegynder
19. juni 2004 - 21:10 #18
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.
Avatar billede dingo2 Nybegynder
19. juni 2004 - 21:32 #19
Skulle måske lige ligge det script der ligger i knapperne, som gør at man kan skifte til næste info.... for det er nok der fejlen ligger...

Skal nok smide dig nogle flere point...

on (rollOver) {
    valg_over = "true";
    tellTarget ("knapp") {
        play ();
    }
}
on (release) {
    tellTarget ("../") {
        if (recnum < totalrecs) {
            when = " ";
            name = " ";
            thecomment = "Loading content...";
            recnum = number(recnum +1 );
    loadVariables ("http://www.website/readdb.asp", "", "POST");
        }
    }
}


Håber det er nemmere sådan...
Avatar billede _k Nybegynder
20. juni 2004 - 12:58 #20
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):

antalBilleder = 3;
aktuelleBillede = 0;
minKnap.onPress = function() {
  if(aktuelleBillede >= antalBilleder) {
    aktuelleBillede++;
  }
  else {
    aktuelleBillede = 1;
  }
  mitBilledHolderMC.loadMovie(eval("minLoadVars.billedsti" + aktuelleBillede);
}
Avatar billede dingo2 Nybegynder
20. juni 2004 - 13:57 #21
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

'PageNo=1

set conn = server.createobject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("guestbook.mdb")

conn.Open DSNtemp




' Få recnum fra flash
recnum = Request.Form("recnum")

sqlstmt = "SELECT * from vstrøm ORDER BY id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")


rs.Open sqlstmt, conn, 3, 3

TotalRecs = rs.recordcount -1

'rs.Pagesize=10
'TotalPages = cInt(rs.pagecount)
'rs.absolutepage=PageNo


x = 0
For x = 1 to recnum
    If rs.eof then
        Exit For
    Else
        rs.MoveNext
    End If
Next

If rs.eof then
    Conn.Close
Else
    IDnum = rs("id")
    When = rs("postdate")
    Name = rs("name")
    'Name = Replace(Name,"''","'")

    Email = rs("email")
   
    Company = rs("company")
    'Company = replace(Company, "''", "'")

    TheComment = rs("thecomment")
    'Comment = replace(comment, "''", "'")


    response.write("name="+URLEncode(Name)+"&email="+URLEncode(Email)+"&company="+URLEncode(Company)+"&thecomment="+URLEncode(TheComment)+"&when="+URLEncode(When)+"&totalrecs="+URLEncode(TotalRecs)+"&idnum="+URLEncode(IDnum))

    Conn.Close
End If

set conn = nothing

%>
Avatar billede dingo2 Nybegynder
20. juni 2004 - 14:01 #22
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.
Avatar billede _k Nybegynder
20. juni 2004 - 19:08 #23
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....
Avatar billede dingo2 Nybegynder
20. juni 2004 - 23:15 #24
ok.. mange tak!
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