Avatar billede goldeneyes Nybegynder
10. august 2004 - 13:48 Der er 18 kommentarer og
1 løsning

Dynamisk menu: 3 kolonner

Jeg arbejder lidt med en dynamisk menu, ud fra følgende kode:

PHP-output:
&antalPoster=2 &overskrift1=min 1. overskrift &tekst1=teksten til overskrift 1 &overskrift2=min 2. overskrift &tekst2=teksten til overskrift 2&

Action Script:

minLoadVars = new LoadVars();
minLoadVars.onLoad = function(succes){
if(succes){
    konstruerMenu();
} else {
    trace("kunne ikke finde dokumentet");
    }
}
minLoadVars.load("http://127.0.0.1/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; //placering i forhold til x-aksen
k._y=Yafstand;
Yafstand+=200; //afstanden mellem hvert punt y-aksen
k.tekstfelt.text=eval("minLoadVars.overskrift" + x);
k.onPress = function() { mainTekst.text = eval("minLoadVars.tekst" + this.id); };

}
}

Kode lavet af _k http://www.eksperten.dk/spm/514748

Hvis jeg ønsker at menuen skalkøre i tre kolonner i stedet for en, hvordan gør jeg så?
Eks:

Link 1 | Link 2 | Link 3
Link 4 | Link 5 | Link 6
Link 7 | Link 8 | Link 9

Hvordan gør jeg det?!?
Avatar billede _k Nybegynder
10. august 2004 - 14:08 #1
Hvis du kan leve med at strukturen i stedet bliver:

Link 1 | Link 4 | Link 7
Link 2 | Link 5 | Link 8
Link 3 | Link 6 | Link 9

Vil det være nok blot at skrive "antalPoster=3" i dit php-output.
Det betyder dog, at du så kan lave din link-formatering (ok med tekst, knap så ok med grafik) i den enkelte overskrift.
Avatar billede goldeneyes Nybegynder
10. august 2004 - 14:12 #2
Denne metode går nok ikke da det skal laves rimelig grafisk.

Jeg har tænkt lidt på at man istedet tæller antal rækker frem for poster, og så bare placerer tre "knapper" ved siden af hinanden for hver række/post.

Ved ikke om det kan lade sig gøre og hvordan.
Avatar billede _k Nybegynder
10. august 2004 - 14:40 #3
Er det noget i den her stil du leder efter? (smid nogle ekstra overskrifter ind og skriv et større antal "antalPoster")

function konstruerMenu() {
trace("menuen er kaldt");
    var Xafstand=20;
    var Yafstand=50;
    var m;
    for(x=0;x<=minLoadVars.antalPoster;x++) {
        attachMovie("minMenu", "minMenu"+x,100+x);
        k=eval("minMenu"+x);
        k.id=x;
        if(x % 3 == 0) {
            Yafstand += 50;
            Xafstand = 20;
        }
        k._x += Xafstand; //placering i forhold til x-aksen
        k._y=Yafstand;
        Xafstand+=70;
        k.tekstfelt.text=eval("minLoadVars.overskrift" + (x + 1));
        k.onPress = function() { mainTekst.text = eval("minLoadVars.tekst" + this.id); };
    }
}
Avatar billede goldeneyes Nybegynder
10. august 2004 - 14:50 #4
Øh? kan ikke lige se at scriptet gør det ønskede.

Link 1 | Link 2 | Link 3
Link 4 | Link 5 | Link 6
Link 7 | Link 8 | Link 9

Jeg ønsker en menu struktureret som vist ovenfor.
Tænkerdefor lidt på om er nemmest ast sende Link 1, Link2 & Link 3 som en post og det samme med 4-6 og 7-9.
På den måde skal flash opstille tre grafiske knapper ved siden af hinanden, pr. post.
Hvis antallet ikke går op med 3 kan man ved en lille if-sætning indsætte et blank felt, på de tomme pladser.
Avatar billede _k Nybegynder
10. august 2004 - 15:00 #5
Det er kun selve konstruerFunktionen jeg har ændret i, du skal stadigvæk bruge den gamle LoadVars-funktion (eller rettere sagt alt det som ligger ovenfor i den gamle udgave)

Scriptet laver den opstilling som du viser ovenfor, men kun hvis du har flere antalPoster end 3.
Du kan godt gøre det på den måde du beskriver, men bliver det ikke mere fleksibelt og lettere tilgængeligt, hvis du betragter hvert link som en indførsel for sig?
Avatar billede goldeneyes Nybegynder
10. august 2004 - 15:49 #6
Perfekt.
Det virker jo nøjagtigt som det skal.
Smider du et svar?!?
Avatar billede goldeneyes Nybegynder
10. august 2004 - 15:57 #7
Hov forresten lige en ting til...

Kan et ladesig gøre at smide noget scroll på?
EVt ved at lave en Mask med området der skal vises og flytte på alle menupunkter.
Avatar billede _k Nybegynder
10. august 2004 - 16:23 #8
Er ikke helt med på hvad du vil scrolle? Er det hvert enkelt punkt, eller er det dem alle sammen samlet?
Avatar billede goldeneyes Nybegynder
10. august 2004 - 16:27 #9
Dem alle samlet.
HVisder bliver en del menupunkter kan de ikke vises på skærmen og med en scroll-funktion kunne det jo løses.
Avatar billede _k Nybegynder
10. august 2004 - 16:43 #10
Du kan smide dem ind på et scrollPane komponent. Hvis du gør det, skal du i store træk blot smide ovenstående funktion ned i et mc, som du så attacher til scrollPanet.
Avatar billede goldeneyes Nybegynder
10. august 2004 - 17:04 #11
Lyder simpelt, men hvordan virker denne funktion?!?

Har aldrig brugt eller set den før...
Avatar billede goldeneyes Nybegynder
10. august 2004 - 18:39 #12
Okey fandt selv ud af det. Dog stadig et problem (sidste...)

Når jeg smider hele koden ind i et mc virker det lidt som om der går noget galt.
Når jeg kører det, går alt ned i hastighed, og flash spørger om den skal stoppe kørslen da scriptet får playeren tilat køre langsomt.

Kan du hjælpe med det?!?
Avatar billede _k Nybegynder
10. august 2004 - 20:21 #13
Jamen så tager jeg æren for at have tilskyndet dig til at lære ScrollPanet at kende ;o)

Måske dit problem ligger i at indholdet af panet sættes igen og igen, og der derfor kommer nogle uheldige iterationer i scriptet her fra siden?
Hvis du sætter panets indhold via dets properties, så prøv i stedet at sætte det igennem script. Det ser vist nogenlunde sådan her ud:

scrollPaneNavn.contentPath = "navnetPåDitNyeMC";

...takker for point
Avatar billede goldeneyes Nybegynder
10. august 2004 - 21:26 #14
Det har jeg prøvet, men fejlen kommer stadig.
Kan det være noget med at jeg pludselig overfører menuen fra main til et mc. Det giver vel lidt problemer med de forskellige variabler?
Avatar billede goldeneyes Nybegynder
10. august 2004 - 22:03 #15
Syntes det virker mærkeligt.
HVis jeg indsætter mC'et direkte på main virker det som det skal, men når jeg bruger
din kode (scrollPaneNavn.contentPath = "navnetPåDitNyeMC";) og ScrollPane kommer fejlmeddelelsen.

Fejlen må ligge i noget med ScrollPane.

Det jeg har gjort er at at trække et scrollPane ind på min main.
Derefter giver jeg den et navn (instance name).

Derefter klikker jeg på linkage for mit Mc og giver den et navn under identifier, og til sidst kalder jeg et indhold til scrollpane med:
scrollPaneNavn.contentPath = "navnetPåDitNyeMC";

Er denne fremgangsmåde forkert?!? har jo som sagt ikke arbejdet med scrollpane før.
Avatar billede _k Nybegynder
13. august 2004 - 16:51 #16
Sorry det sene svar, men har først haft tid til at kigge på problemet nu. Du gør det hele helt rigtigt, og jeg må blive dig svar skyldig med en forklaring på hvorfor ScrollPanet går helt beserk når der attaches på det - men det er ikke første gang at der bøvl med netop dette komponent :o/

En løsning for dig kunne være at bruge et andet ScrollPane komponent. Macromedia har selv noget de kalder "Flash MX Components for Flash MX 2004" ( http://www.macromedia.com/cfusion/exchange/index.cfm?view=sn111&extID=1009423 ) - dér ligger et ScrollPane som plejer at være ganske medgørligt (har selv lige testet, og det virker!)
Avatar billede goldeneyes Nybegynder
19. august 2004 - 20:39 #17
Hej _k

Nu har jeg fået installeret det andet scrollpane, men kan ikke få det til at virke. Den vil ikke vise menuen. Menuen bliver kaldt, men kan bare ikke ses.

Hvad kan det skyldes?
Avatar billede _k Nybegynder
20. august 2004 - 10:39 #18
Er den helt væk, eller nægter scrollPanet "bare" at scrolle nedad?
Avatar billede goldeneyes Nybegynder
23. august 2004 - 09:54 #19
Den kalder menuen, men der vises ikke noget i scrollpanet og der er ingen scrollbarer.
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