Avatar billede zuiq Nybegynder
13. december 2004 - 18:54 Der er 13 kommentarer og
1 løsning

Menu-system

Hej, jeg har lige brug for lidt hjælp. Hvordan laver jeg det her:

Et menu-system med x antal knapper (buttons), der gør sådan at når man klikker på et menupunkt så vælger man den tilhørende side (med loadMovie) og det valte menupunkt skifter farve el. lign -så man kan se hvad man har valgt :)

På forhånd tak,
Mads
Avatar billede baitianlong Nybegynder
13. december 2004 - 20:48 #1
on(release) {
  farve = new Color(this);
  farve.setRGB(0x0044CC);
  loadMovie("film.swf", "movieclipholder");
}

på et movieclip, der er en knap
Avatar billede zuiq Nybegynder
13. december 2004 - 20:53 #2
jamen, forsvinder farven så fra de menupunkter man før har haft valgt?
Avatar billede kragekjaer Praktikant
13. december 2004 - 21:54 #3
hvis du prøver selv, kan vi hjælpe dig med din kode
Avatar billede zuiq Nybegynder
13. december 2004 - 21:58 #4
er ret rookie indenfor actionscript, derfor jeg spørger her
-nogen pointers?
Avatar billede zuiq Nybegynder
13. december 2004 - 22:04 #5
teoretisk tænker jeg noget i den her stil:
-hver gang man vælger et punkt bliver det punkts navn gemt i en streng, og en function bliver kaldt hos alle knapper der tjekker om deres menupunkt stemmer overens med den valgte streng.

men i praksis ved jeg ikke om det er så'n man gør det, eller hvordan man overhovedet gør det jeg lige skrev.
Avatar billede baitianlong Nybegynder
13. december 2004 - 22:06 #6
Næ. Derfor...

Lad os sige der er 4 knapper (som i virkeligheden er movieclips) og de har instance navne: knap1, knap2, knap3, knap4

i _root frame 1:

function setColors() {
  for(i = 1; i < 5; i++) {
      farve[i] = new Color(_root["knap" + i]);
      farve[i].basisfarve = farve[i].getRGB();
  }
}
function resetColors() {
  for(i = 1; i < 5; i++) {
      farve[i].setRGB(farve[i].basisfarve);
  }
}
setColors();
for(i = 1; i < 5; i++) {
  _root["knap" + i].onRelease = function {
      _root.resetColors();
      _root["farve" + i].setRGB(0x0044CC); //Skift selv farvekode
      this.loadMovie("film"+i+".swf", "_root.movieclipholder");
  }
}

Så skal der være et MC, der hedder movieclipholder i _root, og ved klik på dette vil "film1.swf", "film2.swf"..."film4.swf" loades i dette MC og knapperne blive stillet :)
Avatar billede baitianlong Nybegynder
13. december 2004 - 22:14 #7
Når jeg skriver: ved klik på dette vil "film1... mener jeg ved klik på knap1 vil "film1...osv. Ikke ved klik på "holder"-mc'et naturligvis
Avatar billede zuiq Nybegynder
14. december 2004 - 17:11 #8
legende> tak fordi du prøver, men dit script virker altså ikke helt efter hensigten.. når jeg klikker, åbner den kun film5.swf - og den erstatter det menupunkt man klikker på med netop dén swf. Det kan jeg så rette ved at lave this.laodMovie om til moviecliphold.loadMovie -
men stadig, mine knapper skifter ikke farve, og åbner kun film5.swf..

ps. jeg har flash mx (altså den næstnyeste)
Avatar billede baitianlong Nybegynder
14. december 2004 - 18:28 #9
Det er ikke noget, jeg har testet, men det burde virke... så'n da. Lad os fejlsøge lidt:

function setColors() {
  for(i = 1; i < 5; i++) {
      farve[i] = new Color(_root["knap" + i]);
      farve[i].basisfarve = farve[i].getRGB();
      trace(farve[i].basisfarve);
  }
}
function resetColors() {
  for(i = 1; i < 5; i++) {
      farve[i].setRGB(farve[i].basisfarve);
  }
}
setColors();
resetColors();
trace("farver nulstillet");
for(i = 1; i < 5; i++) {
  _root["knap" + i].onRelease = function {
      _root.resetColors();
      _root.farve[i].setRGB(0x0044CC); //Skift selv farvekode
      loadMovie("film"+i+".swf", "_root.movieclipholder");
  }
}

Jeg har skiftet noget, der var forkert, når du tester nu. -Hvad tracer den så?

Vi skal skam nok få det fikset :)
Avatar billede zuiq Nybegynder
15. december 2004 - 16:02 #10
Først sagde den at der manglede et function' navn i denne linje:
_root["knap" + i].onRelease = function {

men det fik jeg væk ved at lave dét om til:
_root["knap" + i].onRelease = function() {

Når jeg kører scriptet nu tracer den:
undefined
undefined
undefined
undefined
farver nulstillet
Avatar billede baitianlong Nybegynder
15. december 2004 - 16:39 #11
Jeg har skrevet det om og testet det:

function setColors() {
  farve = new Array();
  basisfarve = new Array();
  for(i = 1; i < 5; i++) {
      farve[i] = new Color(_root["knap" + i]);
      farve[i].setRGB(0x445566); //startfarve på knapper
      basisfarve[i] = farve[i].getRGB();
  }
}
function resetColors() {
  for(i = 1; i < 5; i++) {
      farve[i].setRGB(basisfarve[i]);
  }
}
setColors();
_root.knap1.onRelease = function() {
    _root.resetColors();
    _root.farve[1].setRGB(0x0044CC); //Skift selv farvekode
    loadMovie("film1.swf", "_root.movieclipholder");
}
_root.knap2.onRelease = function() {
    _root.resetColors();
    _root.farve[2].setRGB(0x0044CC); //Skift selv farvekode
    loadMovie("film2.swf", "_root.movieclipholder");
}
_root.knap3.onRelease = function() {
    _root.resetColors();
    _root.farve[3].setRGB(0x0044CC); //Skift selv farvekode
    loadMovie("film3.swf", "_root.movieclipholder");
}
_root.knap4.onRelease = function() {
    _root.resetColors();
    _root.farve[4].setRGB(0x0044CC); //Skift selv farvekode
    loadMovie("film4.swf", "_root.movieclipholder");
}

Der var lidt kage i mine referencer og for-løkken til sidst :)
Avatar billede zuiq Nybegynder
15. december 2004 - 22:42 #12
perfekt, tak man ;)
Avatar billede zuiq Nybegynder
28. december 2004 - 20:23 #13
legende.dk du smider bare et svar
Avatar billede baitianlong Nybegynder
29. december 2004 - 00:50 #14
ok :)
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