02. maj 2006 - 11:38Der er
18 kommentarer og 1 løsning
combobox og selectedItem
Jeg har en combobox som skal vises med en varierende værdi valgt. Så i mit script ville jeg jo gerne kunne fortælle præcis hvilken værdi, som skal være den valgte, ved at bruge selectedItem, men det vil ikke virke. Derimod kan jeg godt få selectedIndex til at virke - det er bare ikke lige så god en løsning for mig, fordi min combobox skifter indhold og dermed ændres pladsernes værdi. Mine værdier er: 0.01 0.02 osv.
Findes der en måde at forvælge på, som virker på den faktiske værdi og ikke på pladsen?
Dejligt du også godt vil prøve at hjælpe hér :) Hvis vi parrer mit andet spørgsmål med dette, så går det i al sin enkelthed ud på at få vist den nuværende værdi i mit aktive mc som den valgte værdi i comboboxen når mc'et aktiveres, hvis du forstår... men jeg kan heller ikke få det til at virke med selectedItem.data
Nu har jeg fået den til at virke delvist, men efter lidt tid begynder den at bytte om på data-værdierne!!! Så når jeg trykker på 0.02 sender den f.eks. 0.03 afsted...
Nu har jeg fået skruet mit endelige script sammen, og det virker fint nu med korrekt trace af dataskrivning. I den funktion som fylder comboboxen med de tilladte værdier, har jeg så prøvet at sætte selectedItem.data ind til sidst, men...
Den skal initialisere comboboxen med de værdier som er tilladt i forhold til var bredde og var profil Og til sidst skal den vise hvilken værdi som det aktuelle mc har lige nu. Disse oplysninger gemmer jeg i var ctStr_brill1 = 0.01; //en var pr. mc. Jeg vil gerne ha' at comboboxen skal læse værdien i var'en for det aktuelle mc, og vise denne værdi i listen. Forstår du?
(omskrevet til AS2.0) //Test variabler så vi kan se om det virker var bredde:Number = 3.0; var profil:Number = 1; var ctStr_brill1:Number = 0.01; var aktiv:Number = 1; //test variabler slut var set_ct_combo:Function = function () { ct_combo.removeAll(); if ((_root.bredde == 3.0) && (_root.profil == 1)) { ct_combo.addItem({data:0, label:"0"}); ct_combo.addItem({data:0.01, label:"0.01"}); ct_combo.addItem({data:0.02, label:"0.02"}); } //løkke der løber igennem combobox værdierne og hvis den finder en der passer på _root.ctStr_brill+aktiv sætter den denne til at være valgt for (var i:Number = 0; i<=ct_combo.rowCount-1; i++) { if (ct_combo.getItemAt(i).data == _root["ctStr_brill"+aktiv]) { ct_combo.selectedIndex = i; } } }; set_ct_combo(); //kald funktionen
sådan set det eneste du skal bruge ekstra er for løkken det andet har du som sådan ingen grund til at ændre her kommer en forklaring af et par af metoderne i løkken.
ct_combo.rowCount giver antal rækker indsat i comboboxen grunden til vi trækker en fra er at comboboxens index starter på 0 ct_combo.getItemAt(i) henter det aktuelle row ud ct_combo.selectedIndex=i sætter det valgte index til i
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.