Avatar billede jerving Nybegynder
04. december 2002 - 21:46 Der er 6 kommentarer og
1 løsning

Dumme comboBox

Hej,

Er der nogen, der er i stand til at fortælle mig hvorfor flg. problem opstår;

Jeg har anvendt nogle comboBox'e (Flash UI Components Set 1) til at vise nogle valgbare kategorier, hvor lables og data hentes fra en database via en asp-fil.

Dette har indtil videre også fungeret ganske tilfredstillende, lige indtil jeg loader denne swf-fil ind i en anden movies movieClip. Det sære er at det fungerer problemfrit så længe scriptet ligger i roden af af fil. På trods af at der intet sted i scriptet refereres til _root fungerer scriptet ikke, når det loades ind i et movieClip i en anden movie. Det eneste der så vises, er de første inaktive labels, så noget indlæses der, men hvorfor ikke det hele?

I'm lost :o(

comboBoxe'ene har instancenavnene: ageChoice, sexChoice og jobChoice

De ligger i et movieclip, der hedder inPutFields

Frame 1:

//Funktioner til at behandle data fra aspfilen choiceData.asp
function AgeDatHandler(){
    strAgeData = this.strAgeData;
    strAgeLabel = this.strAgeLabel;
}

function SexDatHandler(){
    strSexData = this.strSexData;
    strSexLabel = this.strSexLabel;
}

function JobDatHandler(){
    strJobData = this.strJobData;
    strJobLabel = this.strJobLabel;
}

//Hent variabler til ComboBox'ene,
//og fortæl at den hentede data skal behandles i ovenstående funktioner

mode = "ageChoice";

GetAgeChoice = new LoadVars();
GetAgeChoice.onLoad = AgeDatHandler;
GetAgeChoice.mode = this.mode;
GetAgeChoice.sendAndLoad("ASP/choiceData.asp",GetAgeChoice,"GET");

mode = "sexChoice";

GetSexChoice = new LoadVars();
GetSexChoice.onLoad = SexDatHandler;
GetSexChoice.mode = this.mode;
GetSexChoice.sendAndLoad("ASP/choiceData.asp",GetSexChoice,"GET");

mode = "jobChoice";

GetJobChoice = new LoadVars();
GetJobChoice.onLoad = JobDatHandler;
GetJobChoice.mode = this.mode;
GetJobChoice.sendAndLoad("ASP/choiceData.asp",GetJobChoice,"GET");


Frame 10:

//Her hentes modtagede variabelværdierne til comboBox'ene fra asp-filen
//og lægges i arrays sorteret efter label og data

AgeobjData = new Array();
AgeobjData  = strAgeData.split(",");

AgeobjLabel = new Array();
AgeobjLabel  = strAgeLabel.split(",");

SexobjData = new Array();
SexobjData  = strSexData.split(",");

SexobjLabel = new Array();
SexobjLabel  = strSexLabel.split(",");

JobobjData = new Array();
JobobjData  = strJobData.split(",");

JobobjLabel = new Array();
JobobjLabel  = strJobLabel.split(",");

// Værdierne fra arraysne der tidligere blev hentet fra asp-filen
// lægges her ind i nyt array og hvor "label-værdier"
// og "data-værdier" sammensættes.

i=0;
AgeDp = new Array();
while (i<AgeobjLabel.length) {
AgeDp[i] = {label: AgeobjLabel[i], data:AgeobjData[i]};
  i++;
}

i=0;
SexDp = new Array();
while (i<SexobjLabel.length) {
SexDp[i] = {label: SexobjLabel[i], data:SexobjData[i]};
  i++;
}

i=0;
JobDp = new Array();
while (i<JobobjLabel.length) {
JobDp[i] = {label: JobobjLabel[i], data:JobobjData[i]};
  i++;
}

// Det forbydes at brugeren retter i de udskrevne værdier
//og ovenstående slutvariabler vælges som DataProvider
this.inPutFields.ageChoice.setEditable(false);
this.inPutFields.ageChoice.setDataProvider(AgeDp);

this.inPutFields.sexChoice.setEditable(false);
this.inPutFields.sexChoice.setDataProvider(SexDp);

this.inPutFields.jobChoice.setEditable(false);
this.inPutFields.jobChoice.setDataProvider(JobDp);

Det ville være helt fantastisk, hvis nogen kunne fortælle mig hvor jeg har dummet mig.
Avatar billede hoejrup Nybegynder
04. december 2002 - 22:50 #1
Har du husket at anvende følgende metode

loadVariables("din.asp", _root.DitMovieclipNavnHvorDinComboLoadesInd);

/per
Avatar billede jerving Nybegynder
04. december 2002 - 23:04 #2
Den metode har jeg anvendt før, men det er nemmere at kontrollere variablerne ved at bruge LoadVars(); indeholdende et array med et sendAndLoad i, og en onLoad der refererer til en fuktion der behandler de indgående variabler.

Jeg har også prøve at rette tilbage til loadVariablesNum()-metoden, men resultatet er det samme.

Men ellers tak for budet Per :o)
Avatar billede hoejrup Nybegynder
04. december 2002 - 23:33 #3
Du skriver godt nok at de første inaktive labels indlæses.

Har du prøvet at lave et loop for indlæsningen, så den fortsætter til en tilstand. F. eks.

if (slutvar != "eof") {
  gotoAndPlay(1);
}

/per
Avatar billede barklund Nybegynder
05. december 2002 - 14:06 #4
Har do forsøgt dig med at smide et væld af traces rundt omkring, for at se hvilke data der kommer eller ikke kommer? Det kan redde det meste...
Avatar billede jerving Nybegynder
05. december 2002 - 15:44 #5
Aaah, god idé barklund, dumt jeg ikke har forsøgt med det noget før - forsøger det lige når jeg kommer hjem til min fil.

thx :o)
Avatar billede jerving Nybegynder
05. december 2002 - 19:45 #6
Hmmm, det er alt for mystisk jeg har prøvet at udskrive samtlige variabler i et tekstfelt, og de kommer alle med over, men resultatet er det samme.

Fatter det simpelthen ikke :o(
Avatar billede jerving Nybegynder
05. december 2002 - 21:42 #7
Endelig fandt jeg løsningen.

Åndsvagt problem!!!

Hvis der er andre, der skulle komme ud for samme problemstilling:

Jeg forsøgte, blot for at gennemgå alle fejlmuligheder, at trække comboBox komponenten fra libary'et fra filen, der loades ind i "hoved-movien", ind i stagen i "hoved-movien", forderefter at slette den igen, således at den også blev registreret i dens libary.

Jeg kan ikke se hvorfor den skulle registreres i begge libarys, da dette ikke er nødvendigt med nogen andre komponenter, inkl. dem jeg selv har kodet, så det må næsten være en lille bug i MX UI 1 Set pakken.

Så ved I det. Skal i bruge comboBoxe, skal komponenten være registreret i alle libaries - så er i ude af den problematik.

Spild af tid at kæmpe i 2 dage med det tåbelige problem.

Ellers tak for budne, hoejrup og barklund :o)

Med venlig hilsen

jerving
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