Avatar billede sorteplov Nybegynder
23. marts 2003 - 21:05 Der er 40 kommentarer og
2 løsninger

Data fra en ASP-side ordnes i Flash

Hej

Jeg modtager en masse variabler fra en asp-side (det er til en gæstebog).

Dem får jeg fx. sådan her:

id1=1&navn1=Jens&besked1=hej med dig&id2=2&navn2=Uffe&besked2=Hej med jer osv. osv. (der kan være flere hundrede)

Hvordan "ordner" jeg dem i Flash og præsenterer dem i fx. hvert sit selvstændige MC eller i et dynamisk tekstfelt.

Jeg tænkte på at putte dem ind i et Array, men er gået lidt sukkerkold i syntaksen og det hele.....hjælp :-)
Avatar billede mat Nybegynder
23. marts 2003 - 21:28 #1
var1 = "jens";
var2 = "peter";
var3 = "hans";

arr = new Array();

for (i = 1; i <= 3; i++) {
    arr[i-1] = this["var"+i];
}

Så er de stoppet i et array, men er de ikke fint ordnet som seperate variabler når du loader dem ind?

Du kan jo assigne dem til tekstfelter, movieclips, whatever, hvis de deler navn, med endnu en for løkke f.eks:

for (j = 1; j <= 3; j++) {
    createTextField("t"+j, 100+j, 100*j, 10, 50, 20);
    this["t"+j].text = arr[j-1];
}


..jeg ved ikke om det var nogen hjælp, men det er da et bud :)

mvh mat
Avatar billede alexander_j Nybegynder
23. marts 2003 - 21:31 #2
Hvorfor vil du dog have flash til at klare den del af arbejdet?
Flash er ikke speciel hurtig til at arbejde med så stort et antal af variabler!

Lav dog din asp-del sådan at der kun er een variabel(fx med indlagt grundlæggende html-kode(<br><b><i><u> osv)):
minvariabel=<b>Jens</b><br>hej med dig<br><b>Uffe</b><br>Hej med jer<br>...

Så kan du direkte putte dem ind i et dynamisk textfield med:
mittextfield.htmlText=minvariabel;

Bare mit forslag!

/Alexander
Avatar billede sorteplov Nybegynder
23. marts 2003 - 21:54 #3
mat ->

Jeg loader variablerne ind i første frame sådan her:

loadVariablesNum("asp_test.asp?id=34", 1);

Men hvordan får jeg "ordnet" dem så fx. id1=1&navn1=Jørgen&besked1=hej hej

Bliver smidt ind i sit eget MC og variablerne id1, navn1 og besked 1 ind i hvert sit tekstfelt i MC'et.

Altså sådan at id2, navn2 og besked2 får et nyt MC og id3,navn3 og besked3 endnu et osv.....:-)

Det du har skrevet ser fint ud, men kan du uddybe det lidt ?

;-)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:01 #4
Umiddelbart ser jeg problemet som værende at bestemme hvor mange gange for-løkken skal køres! Man aner jo ikke om der er tale om 3 eller hundrede poster!
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:05 #5
Det har du selvfølgelig ret i alexander, men hvis jeg nu fx. begrænsede mig til de 50 seneste poster.....:-)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:09 #6
for (j = 1; j <= 50; j++) {
    createEmptyMovieClip(id,i);
    this[id]._x=j*100;//denne her placere mc'et - den må du selv lege med!   
    this[id].createTextField("tf",1,0,0,100,100);
    this[id].tf.text = arr[j-1];
}

Så er det da puttet i mc's også - men effekten er den samme!
Avatar billede mat Nybegynder
23. marts 2003 - 22:10 #7
sorteplov > Hvis vi antager at dine movieclips hedder clip1, clip2 , clip3 osv kan du bruge for løkken ret nemt:

for (i = 1; i <= numUsers; i++) {
with (_root["clip"+i]) {
tekst_navn.text = eval("navn"+i);
tekst_besked.text = eval("besked"+i);
}
}

så vil clip1´s tekstfelt med navnet "navn" få tildelt navn1 osv, og du kan selvfølgelig osse bare attache movieclips i løkken så du er fri for at sidde og skrive 50 instancenavne :)

ovenstående er ikke testet så jeg forbeholder mig retten til fejl :)
Avatar billede mat Nybegynder
23. marts 2003 - 22:10 #8
arg slået med 27 sekunder, nederen :)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:11 #9
Du kan eventuelt til føje en:
if(id!=undefined){

Så laver den ikke 50 mc's når der kun er 3 poster!
Avatar billede mat Nybegynder
23. marts 2003 - 22:11 #10
og jeg kan heller ikke regne længere, herre-nederen :/
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:19 #11
Men jeg synes stadig det virker tåbeligt at putte det i 50 forskellige mc's og/eller textfields for den sags skyld!

Brug dog i stedet et enkelt textfield med html-formatering og en scrollbarcomponent(flash mx)!

En kode der kunne samle det hele i en streng:
for i=0;i<50;i++){
if(this["id"+i]!=undefined){
  str+="__________<br>";
  str+="<b>"+this["navn"+i]+"</b><br>";
  str+=this["besked"+i]+"<br>";
}
}
mittextfield.htmlText=str;
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:20 #12
OK alexander og mat - for lige at skære det ud i bølgepap for mig selv - vil i så forklare hvordan jeg gøre fra step 1.

Altså jeg loader mine variabler i frame 1......

:-)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:29 #13
Insisterer du på 50 selvstændige mc's og/eller textfield?
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:32 #14
alxander ->

Nej det gør jeg ikke - det var fordi jeg havde tænkt mig at lave et "dummy" MC som så blev duplikeret som en slags opslagstavle (sådan rent grafisk).

Men det du har skrevet er mægtig fint. Jeg sidder bare og prøver at fatte syntaksen i det lidt mere avancerede Actionscript.....er blevet cirka dobbelt så klog over weekenden.....;-)

Er det en stor operation at duplikere et givent MC på denne måde?
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:38 #15
loadtext = new LoadVars();
loadtext.sendAndLoad("minaspside.asp", loadtext, "POST");
loadtext.onLoad=function(success){
    if(success) {
        for(i=0;i<50;i++){
            duplicateMovieClip("dummmy","mc"+i,i);                    this["mc"+i].tf.text=loadtext["navn"+i]+"\n"+loadtext["besked"+i];
        }
    }
}

Dit textfield i dummy mc'et skal så ha' navnet tf!

Den er ikke efterprøvet - men tror den virker!
Avatar billede mat Nybegynder
23. marts 2003 - 22:40 #16
aarrrh damn jeg havde lige skrevet det samme (det kan alle jo komme og sige)...jeg må øve mig i at skrive hurtigere :)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:40 #17
En if-sætning før duplicate ville være smart - hvis der nu ikke var 50 poster:
if(loadtext["id"+i]!=undefined){
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:42 #18
Mat du kan da lave en løsning til placeringsproblemet :-)
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:47 #19
Herligt - det  var lige mit næste spm. :-)


Jeg tester det lige....
Avatar billede mat Nybegynder
23. marts 2003 - 22:49 #20
så skal det osse være sådan så når man har skrevet sin besked skal man trykke på opslagstavlen og placere beskeden :)))

(men det bliver vist ikke lige idag)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:51 #21
Som det er lige nu placeres alle de duplikerede mc's samme sted(oven i hinanden) - du kan naturligvis ændre deres placering ved brug af:
this["mc"+i]._x og this["mc"+i]._y
men 50 poster på skærmen på een gang kan godt blive problematisk!
Avatar billede mat Nybegynder
23. marts 2003 - 22:55 #22
du kan da gange en faktor på i og placere dem på den måde (som i mit første indlæg) hvis de skal placeres i to dimensioner bruger du en embedded for løkke i den første...eller misforstår jeg?
Avatar billede alexander_j Nybegynder
23. marts 2003 - 22:58 #23
Mat god ide - det kræver godt nok to ekstra variabler pr besked: x1 og y1 - men det kunne da være sjovt hvis folk selv kunne bestemme hvor beskeden skulle hænge!

Du bliver nok nød til at lave en Drag- og en swapDepths-funktion på 'sedlerne' så gemte beskeder kan hives frem og læses!

Btw 50 beskeder er alt for mange!
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:59 #24
OK jeg er lige stået af :-)

Men jeg lytter spændt :-)
Avatar billede sorteplov Nybegynder
23. marts 2003 - 22:59 #25
Jam' så nøjes jeg med 10 beskeder :-)
Avatar billede mat Nybegynder
23. marts 2003 - 23:01 #26
alexander > det er nu ikke helt min ide, men opslagstavle-ideen er da et nice twist: http://www.complexification.net/port/simpleCursor/index.html
Avatar billede alexander_j Nybegynder
23. marts 2003 - 23:01 #27
Hov der kan jeg lære noget - en 'embedded for løkke' hvad er det?

Normalt bruger jeg nemlig:
for(i=0;i<10;i++){
  for(j=0;j<5;j++){
    //minkode
    mc._x=i*25;
    mc._y=j*25;
  }
}
Avatar billede mat Nybegynder
23. marts 2003 - 23:03 #28
alexander > det er det jeg kalder en embedded for løkke såmænd - men jeg skal ikke kunne garantere at det er korrekt terminologi :)
Avatar billede sorteplov Nybegynder
23. marts 2003 - 23:18 #29
alexander ->

For lige at springe lidt tilbage.

Så virker det her fint hvis jeg skriver variablerne direkte i Flash

Men jeg synes stadig det virker tåbeligt at putte det i 50 forskellige mc's og/eller textfields for den sags skyld!
Brug dog i stedet et enkelt textfield med html-formatering og en scrollbarcomponent(flash mx)!
En kode der kunne samle det hele i en streng:
for i=0;i<50;i++){
if(this["id"+i]!=undefined){
  str+="__________<br>";
  str+="<b>"+this["navn"+i]+"</b><br>";
  str+=this["besked"+i]+"<br>";
}
}

men hvis jeg loader dem ind med:

loadVariablesNum("asp_test.asp?id=34", 0);

Så dutter det ikke ??
Avatar billede sorteplov Nybegynder
23. marts 2003 - 23:19 #30
Hov ..... copy/paste sjov :-)
Avatar billede sorteplov Nybegynder
23. marts 2003 - 23:20 #31
Åndssvage Mac jeg sidder på.....
Avatar billede alexander_j Nybegynder
23. marts 2003 - 23:23 #32
Har du lavet en tester for om variablerne er blevet loadet?

frame 1:
id1=undefined;
loadVariablesNum("asp_test.asp?id=34", 0);

frame 2:
if(id!=undefined)gotoAndStop(4);

frame 3:
gotoAndPlay(2);

frame 4:
for i=0;i<50;i++){
if(this["id"+i]!=undefined){
  str+="__________<br>";
  str+="<b>"+this["navn"+i]+"</b><br>";
  str+=this["besked"+i]+"<br>";
}
}

I frame 4 skal du så også ha' tegne dit textfield!

Måske virker det?
Avatar billede alexander_j Nybegynder
23. marts 2003 - 23:25 #33
Fejl

frame 2:
if(id1!=undefined)gotoAndStop(4);
Avatar billede alexander_j Nybegynder
23. marts 2003 - 23:28 #34
På den måde køre filmen mellem frame 2 og 3 indtil indholdet fra din asp-side er blevet hentet, hvorefter den går til frame 4 hvor din kode afvikles!
Avatar billede sorteplov Nybegynder
23. marts 2003 - 23:30 #35
Ok - jeg prøver lige ... men min Mac driller ....OS X aaaaaarggh.

Jeg er lige tilbage om 10 min :-)
Avatar billede alexander_j Nybegynder
23. marts 2003 - 23:33 #36
Køb 'Windows 98' for der er alting blevet hurtigere og sikrere og nemmere og ... <NOT>
Avatar billede sorteplov Nybegynder
23. marts 2003 - 23:47 #37
Aaah så virkede det :-)

Jeg tror du har ret i det med de mange MC's bliver et problem - det kunne ellers se fedt ud med noget flot grafik.

Det dutter - tak for hjælpen - smid et svar så deler jeg ud af pointene - måske skulle mat også have et par stykker for hjælpen..:-)
Avatar billede mat Nybegynder
24. marts 2003 - 15:00 #38
...og det hedder en "nested" for løkke, skulle jeg mene ja :)
Avatar billede sorteplov Nybegynder
24. marts 2003 - 15:09 #39
alexander skriver du også lige et svar....så deler jeg pointene...:-)
Avatar billede alexander_j Nybegynder
24. marts 2003 - 17:39 #40
Ok, men giv MAT de fleste - jeg blandede mig bare ;-)
Avatar billede mat Nybegynder
24. marts 2003 - 17:52 #41
Det er jeg nu ikke enig i, tråden taler vist sit eget sprog :)
Avatar billede sorteplov Nybegynder
24. marts 2003 - 18:03 #42
Ah - jeg synes i begge har kommet med gode svar - tak for det :-)

Jeg opretter lige et spm. mere om 2 min. hvis I er interesserede......:-)
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