/ Forside / Teknologi / Multimedie & design / Flash / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Flash
#NavnPoint
bentjuul 4251
molokyle 1978
Klaudi 1488
jhvp 1265
pallenoc 1160
katekismus 1020
Fnollerpi.. 790
slander 510
Dr.Disco 500
10  Flash77 500
preloader på tekst fra db
Fra : peter hansen


Dato : 02-02-04 16:04

okay - mit site henter teksten fra en database gennem en asp-fil
Jeg har forsøgt at lave en preloader til teksten for nogle gange er teksten
sgu ikke loaded når man trykker på de menuer der skal vise tekst...

AS'et ser ud som følger og ligger i key nummer 2

//***********************************************
// This function will keep looping as long as the variables, imported from
// handle.asp hasn't been loaded...
function preLoadVar() {
System.useCodePage = true;
l = new LoadVars();
l.load("database/handler.asp");
p = String(this.infoEOF); // antallet af strings der skal loades
l.onLoad = function(s) {
if (s) {
for (k=1; k=p; k++) {
txt = this["infoTxt"+p];
txtEOF = this.infoEOF;
if (txt == false) {
gotoAndPlay(1);
}
}
}
};
}
preLoadVar();
//***********************************************

ASP-siden som der henvises til ser sådan her ud:

<%
Response.CacheControl = "No-Cache"
Dim myArray()
Dim i

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ="&Server.MapPath("db.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM dbTabel ORDER by ID"
Set rs = Conn.Execute(strSQL)
Set snask = Conn.Execute(strSQL)
Do
rs.MoveNext
o = o + 1
Loop While Not rs.EOF

ReDim myArray(o)

for i = 1 to o
MyArray(i)="This is item " & i
Response.Write "infoTxt" & i & "=" & snask("dbTxt") & "&"
if i = o Then
infoEOF = i
response.write "infoEOF" & "=" & i
end if
snask.MoveNext
next

Conn.Close
Set Conn = Nothing
%>

Dette ASP-site udskriver egentlig bare alle teksterne jeg har i databasen
(det virker så det er vel i Flash-scriptet fejlen ligger... men alligevel så
er:

infoTxt1 = den tekst der kommer når man trykker på menu 1
infoTxt2 = den tekst der kommer når man trykker på menu 2
....
infoEOF = antallet af poster i databasen - i det her tilfælde 4


Det skulle virke men det lader ikke til at være tilfældet - nogen der har
nogen ideer til fejlen i Flash.scriptet ?

// Peter



 
 
Bo Dudek (02-02-2004)
Kommentar
Fra : Bo Dudek


Dato : 02-02-04 21:55

[...]

jeg har ikke sat mig voldsomt ind i dit asp script, men hvis du som
den sidste ting i din asp udskriver "&tekst_loadet=yep" kan du tjekke
for dette i flash, så når tekst_loadet=="yep" må alt tekst
nødvendigvis være loadet..

got that, boy?

Mvh
Bo Dudek
www.bodudek.dk

peter hansen (02-02-2004)
Kommentar
Fra : peter hansen


Dato : 02-02-04 23:46


"Bo Dudek" <bo@FJERNbodudek.dk> wrote in message
news:a7et10t60a08gvqvqmv5cgr9vqn4gn988e@4ax.com...
> [...]
>
> jeg har ikke sat mig voldsomt ind i dit asp script, men hvis du som
> den sidste ting i din asp udskriver "&tekst_loadet=yep" kan du tjekke
> for dette i flash, så når tekst_loadet=="yep" må alt tekst
> nødvendigvis være loadet..
>
> got that, boy?

Jaja... teksten bliver også loaded men deter tilfældigt om der skal to klik
eller tre klik til - oftest virker det uden problemer men en sjælden gang
skal jeg trykke to eller tre gange før teksten er loaded fra databasen...
Men du siger at det er enten eller om teksten er loaded ? altså at hvis en
tekst er loaded så er alle loaded?

Anyway hvad indeholder en tom variabel når den bliver loaded fra en db... fx
hvis jeg skulle lave din funktion modsat

if (loaded <> false) {
bla bla bla
}

altså hedder den false eller "" eller hva?

// Peter



Bo Dudek (03-02-2004)
Kommentar
Fra : Bo Dudek


Dato : 03-02-04 07:11

[...]

>Men du siger at det er enten eller om teksten er loaded ? altså at hvis en
>tekst er loaded så er alle loaded?

ja, hvis den sidste tekst i din asp er loadet, så går man ud fra, at
ALT andet tekst i asp'en er loadet..


>Anyway hvad indeholder en tom variabel når den bliver loaded fra en db... fx
>hvis jeg skulle lave din funktion modsat
>
>if (loaded <> false) {
>bla bla bla
>}
>
>altså hedder den false eller "" eller hva?

yes.. men måske en while var bedre..

if (_root.loadet != "") {
..nu er teksten loadet og vi går videre
}

Mvh
Bo Dudek
www.bodudek.dk

Peo (03-02-2004)
Kommentar
Fra : Peo


Dato : 03-02-04 11:48

Du kan bruge getBytesLoaded og getBytesTotal til at holde øje med hvor meget
af din data der er hentet, eks:

//// interval og funktion der checker status for load_obj
function checkLoadStatus() {
var p = Math.round(load_obj.getBytesLoaded()/load_obj.getBytesTotal()*100);
// hvis intet er hentet endnu er p ikke et tal, så 0 vises i stedet
p = (isNaN(p)) ? 0 : p;
trace("Der er hentet "+p+"% af data");
}

//// event handler som aktiveres når al data er hentet
function handleLoad(success) {
// stop checkLoadStatus_intv, så checkLoadStatus() ikke kaldes mere
clearInterval(checkLoadStatus_intv);
if (success) {
trace("loading af data var successfuld");
// trace alle variabler der er blevet hentet
for (var p in this) {
if (typeof this[p] == "string") {
trace("variablen "+p+" har værdien: "+this[p]);
}
}
} else {
trace("fejl - ingen data hentet");
}
}
//// funtion der initiere loading af data
function initLoading() {
// obj til håndtering af ekster data
load_obj = new LoadVars();
// event handler tilføjes til load objektet
load_obj.onLoad = handleLoad;
// loading af data initieres
load_obj.load("database/handler.asp");
// interval der kalder checkLoadStatus() for hvert 100 ms
checkLoadStatus_intv = setInterval(checkLoadStatus,100);
}
// Så kører vi...!
initLoading() ;



peter hansen (22-02-2004)
Kommentar
Fra : peter hansen


Dato : 22-02-04 23:22

[CUT]
> Du kan bruge getBytesLoaded og getBytesTotal til at holde øje med hvor
meget
> af din data der er hentet, eks:
>
> //// interval og funktion der checker status for load_obj
> function checkLoadStatus() {
> var p =
Math.round(load_obj.getBytesLoaded()/load_obj.getBytesTotal()*100);
> // hvis intet er hentet endnu er p ikke et tal, så 0 vises i stedet
> p = (isNaN(p)) ? 0 : p;
> trace("Der er hentet "+p+"% af data");
> }
>
> //// event handler som aktiveres når al data er hentet
> function handleLoad(success) {
> // stop checkLoadStatus_intv, så checkLoadStatus() ikke kaldes mere
> clearInterval(checkLoadStatus_intv);
> if (success) {
> trace("loading af data var successfuld");
> // trace alle variabler der er blevet hentet
> for (var p in this) {
> if (typeof this[p] == "string") {
> trace("variablen "+p+" har værdien: "+this[p]);
> }
> }
> } else {
> trace("fejl - ingen data hentet");
> }
> }
> //// funtion der initiere loading af data
> function initLoading() {
> // obj til håndtering af ekster data
> load_obj = new LoadVars();
> // event handler tilføjes til load objektet
> load_obj.onLoad = handleLoad;
> // loading af data initieres
> load_obj.load("database/handler.asp");
> // interval der kalder checkLoadStatus() for hvert 100 ms
> checkLoadStatus_intv = setInterval(checkLoadStatus,100);
> }
> // Så kører vi...!
> initLoading() ;

Beklager min sløvhed - meeen du skal ha tak - men lige et spørgsmål:
hvorfor al den kode ? - jeg mener - uuuhm - du skriver selv at jeg bare skal
lave en preloader der tjekker hvor mange bytes der er loaded og mine
preloadere har aldrig haft så meget kode som du her kommer med. Hvad er
grunden / jeg kan ikke ræddi læse mig ud af det

// Peter



Peo (23-02-2004)
Kommentar
Fra : Peo


Dato : 23-02-04 09:48


> hvorfor al den kode ? - jeg mener - uuuhm - du skriver selv at jeg bare
skal

Grunden til det "store" script er sådan set bare, at jeg mente at et komplet
eksempel ville være til fleres læseres gavn.
Eksemplet er delt op i:
load variablerne: function initLoading();
håndtér variablerne når de engang er hentet: function handleLoad();
hold øje med loadStatus: function checkLoadStatus();

Den del du formodenlig leder efter er function checkLoadStatus(), som uden
kommentare, faktisk ikke fylder meget.:

function checkLoadStatus() {
var p = Math.round(load_obj.getBytesLoaded()/load_obj.getBytesTotal()*100);
p = (isNaN(p)) ? 0 : p;
trace("Der er hentet "+p+"% af data");
}

Jeg har iøvrigt også haft den oplevelse, at jeg syntes at actionscript
efterhånden kommer til at skulle være mere og mere komplekse, selv for ting
som man i gamle dage kunne gøre kortere. Tror det er prisen for et mere
robust, pålideligt og fleksibelt programmeringssprog.

/peo



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409080
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste