Avatar billede oleskrogh Nybegynder
21. juli 2004 - 10:43 Der er 10 kommentarer og
1 løsning

Hente værdi fra Listbox

listArray = ["mandag", "tirsdag", "onsdag", "torsdag", "fredag"];
for (i=0; i<listArray.length; i++) {
    myList.addItem(listArray[i]);
}

Når man i listboxen vælger fx fredag skal man komme til en frame med label "fredag"..
Det er bare et tænkt eksempel..
jeg har bikset lidt med selectedItem osv. men har ikke kunnet får det til at virke...
Det er sikkert ret enkelt!
/ole
Avatar billede mat Nybegynder
21. juli 2004 - 11:01 #1
listArray = ["mandag", "tirsdag", "onsdag", "torsdag", "fredag"];
for (i=0; i<listArray.length; i++) {
    myList.addItem(listArray[i]);
}
function handler(){
    gotoAndStop(myList.getSelectedItem().label);
}
myList.setChangeHandler("handler");
Avatar billede barklund Nybegynder
21. juli 2004 - 11:03 #2
Og hvis du vil have forskellige præsenterede labels og faktiske værdier:

listArray = ["Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag"];
valuesArray = ["ma", "ti", "on", "to", "fr"];
for (i=0; i<listArray.length; i++) {
    myList.addItem(listArray[i], valuesArray[i]);
}
function handler(){
    gotoAndStop(myList.getSelectedItem().data);
}
myList.setChangeHandler("handler");

Blot eksemplets skyld. Altså man kan have en tekstuel værdi, der igen har en intern dataværdi forskellig fra den præsenterede. Er ofte praktisk hvis man skal vælge noget, der i virkeligheden svarer til nogle id'er eller tilsvarende.
Avatar billede oleskrogh Nybegynder
21. juli 2004 - 11:14 #3
hmm ingen af delene virker. og jeg sidder og undrer mig over at hverken getSelectedItem() eller setChangeHandler bliver blå -
jeg har en 30-dages version af MX2004 - kan det have noget med det at gøre?
/ole
Avatar billede barklund Nybegynder
21. juli 2004 - 11:23 #4
Altså Flash MX 2004 komponenter og ikke Flash MX komponenter - ja det gør en forskel ;)

Prøv så med:

import mx.controls.List;
var my_listbox:List;
var listArray = ["Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag"];
var valuesArray = ["ma", "ti", "on", "to", "fr"];
for (var i=0; i<listArray.length; i++) {
    my_listbox.addItem(listArray[i], valuesArray[i]);
}
var listener:Object = new Object();
listener.change = function(evt) {
    trace(evt.target.selectedItem.data);
}
my_listbox.addEventListener("change", listener);

Der er nemlig kommet en helt ny listener/event model i den nye flash :)
Avatar billede barklund Nybegynder
21. juli 2004 - 11:23 #5
trace skal så være gotoAndStop - og dine data er "ma", "ti" og så videre...
Avatar billede oleskrogh Nybegynder
21. juli 2004 - 11:33 #6
ja, nu kom der hul på det! Læg et svar!
Avatar billede jakwag Nybegynder
21. juli 2004 - 12:53 #7
... man kan osse:

my_listbox.changeHandler = function(){
  gotoAndStop(myList.getSelectedItem().data);
}
det er mindre rigtigt (vil de hårde programmøre sikkert sige) men det er hurtigere.
Avatar billede barklund Nybegynder
21. juli 2004 - 13:33 #8
Oki ;)
Avatar billede barklund Nybegynder
21. juli 2004 - 13:33 #9
Prøver igen ;)
Avatar billede oleskrogh Nybegynder
21. juli 2004 - 14:25 #10
sådan!
Avatar billede barklund Nybegynder
21. juli 2004 - 14:27 #11
Tark for points - og held og lykke ;)
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