Avatar billede goldeneyes Nybegynder
28. juni 2004 - 17:19 Der er 11 kommentarer og
1 løsning

hent overskrift og indhold fra database + dynamisk menu

Jeg har en database med en række overskrifter og en tilhørende tekst.
Problemet er nu at jeg gernevil have en menu dannet ud fra overskrifterne, og når man klikker på den vises den tilhørende tekst i et dynamisk tekstfelt.

Hvordan gør jeg det?
(benytter mySQL + php)
Avatar billede _k Nybegynder
29. juni 2004 - 10:55 #1
Få din php til at spytte noget i den her retning ud:

&antalPoster=2&
&overskrift1=min 1. overskrift&
&tekst1=teksten til overskrift 1&
&overskrift2=min 2. overskrift&
&tekst2=teksten til overskrift 2&
...osv. osv...

Hent dine variable ind med LoadVars objektet:
minLoadVars = new LoadVars();
minLoadVars.onLoad = konstruerMenu;
minLoadVars.load("http://www.whereever.com/navnetPåMinPHP.php");

Lav et mc som skal agere menupunkt. Inde i mc'et laver du et dynamisk tekstfelt som hedder "tekstfelt". Slet mc'et fra scenen. Inde i dit Library (ctrl-L) højreklikker du på det, og vælger linkage. Kald det "minMenu".

Lav et dynamisk tekstfelt på stagen som du kalder "mainTekst".

Så skal vi lige ha' lavet en funktion der kan attache alle dine menupunkter på stagen.

function konstruerMenu() {
  var Yafstand = 50;
  for(x=1;x<minLoadVars.antalPoster;x++) {
    this.attachMovie("minMenu", "minMenu" + x, 100 + x);
    eval("minMenu" + x)._x = 30;
    eval("minMenu" + x)._y = Yafstand;
    Yafstand += 50;
    eval("minMenu" + x).tekstfelt.text = eval("minLoadVars.overskrift" + x);
    eval("minMenu" + x).onPress = function() { mainTekst.text = eval("minLoadVars.tekst" + x); };
  }
}

... det her er hurtigt fyret af, og jeg har derfor ikke testet. Umiddelbart er jeg lidt i tvivl om onPress-metoden der bliver assignet til minMenu vil virke. Hvis ikke, så få inspiration i den her tråd:
http://www.eksperten.dk/spm/402793

..det skulle vist få dig videre....
Avatar billede goldeneyes Nybegynder
29. juni 2004 - 13:01 #2
Det ser ud som om det er lige det der skal til.

Tænkte lidt på hvadjeg skal vælge under "linkage":
(Export for ActionScript, Export for runtime sharing eller import for runtime sharing)
Skal der stå noget under AS 2.0 Class eller kun under Identifier?
Avatar billede _k Nybegynder
29. juni 2004 - 13:15 #3
Du skal bare sætte fluebenet i "Export for ActionScript. Så sætter den selv et flueben i "Export in first frame" og det er fint. I "Identifier"-feltet skriver du det navn du vil ha', hvilket kan være (næsten) hvad som helst.
"As 2.0 Class" bruger man kun hvis man vil hente klasser ind fra filer udenfor Flash. Så smarte er vi ikke i denne forbindelse, så lad bare det felt stå tomt.
Avatar billede goldeneyes Nybegynder
29. juni 2004 - 13:17 #4
Okey tak for det.
Såvil jeg prøve at arbejde lidt videre med det.
Avatar billede goldeneyes Nybegynder
29. juni 2004 - 13:26 #5
Kan slet ikke få det til at virke.
Vil du kigge lidt på det.

Filerne kan hentes på
www.lubker.dk/test/
Avatar billede goldeneyes Nybegynder
29. juni 2004 - 15:20 #6
Skulle koden
function konstruerMenu() {
  var Yafstand = 50;
  for(x=1;x<minLoadVars.antalPoster;x++) {
    this.attachMovie("minMenu", "minMenu" + x, 100 + x);
    eval("minMenu" + x)._x = 30;
    eval("minMenu" + x)._y = Yafstand;
    Yafstand += 50;
    eval("minMenu" + x).tekstfelt.text = eval("minLoadVars.overskrift" + x);
    eval("minMenu" + x).onPress = function() { mainTekst.text = eval("minLoadVars.tekst" + x); };
  }
}
være nok til at placere menuen på stagen? eller skal mc sættes ind eller hvad?

(Undskyld mig, men har ikke arbejdet med flash så længe...)
Avatar billede goldeneyes Nybegynder
29. juni 2004 - 17:20 #7
Okey.
Jeg gi'r op.
Er der en der kan lave en .fla fil der virker og maile den til mig. (ingen grafik)
så er der point...

daniel@lubker.dk
Avatar billede _k Nybegynder
30. juni 2004 - 10:56 #8
Så, nu må du ikke give op, dér. Her er en ny, forbedret og ikke mindst testet udgave af ovenstående script:

minLoadVars = new LoadVars();
minLoadVars.onLoad = function(success) {
    if(success) {
        konstruerMenu();
    }
    else {
        trace("kunne ikke hente dokumentet");
    }
    }
minLoadVars.load("http://www.lubker.dk/test/MinPHP.php");

var m;
function konstruerMenu() {
    trace("menuen er kaldt");
  var Yafstand = 50;
  var m;
  for(x=1;x<=minLoadVars.antalPoster;x++) {
    attachMovie("minMenu", "minMenu" + x, 100 + x);
    k = eval("minMenu" + x);
    k.id = x;
    k._x = 30;
    k._y = Yafstand;
    Yafstand += 50;
    k.tekstfelt.text = eval("minLoadVars.overskrift" + x);
    k.onPress = function() { mainTekst.text = eval("minLoadVars.tekst" + this.id); };
  }
}

Nu udskriver den til output-vinduet hvis den ikke kan finde php-filen. Og nu virker de dynamisk genererede knapper.

MC'en skal blot ligge i librariet, ikke på stagen. I runtime sætter Flash selv det hele ind. Du kan selv placere knapperne anderledes, ved at justere på Yafstand og dér hvor der står 30 (svarer til Xafstand).
Avatar billede goldeneyes Nybegynder
30. juni 2004 - 19:57 #9
Perfekt så kom det endelig til at virke.
Takker virkelig for din tålmodighed...
Smider du et svar?
Avatar billede _k Nybegynder
30. juni 2004 - 20:05 #10
Det er bare ok. Godt du ikke gav helt op ;o)
Avatar billede _k Nybegynder
30. juni 2004 - 20:06 #11
...og her var et svar...
Avatar billede _k Nybegynder
01. juli 2004 - 08:30 #12
Takker for point :o)
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