Avatar billede pegasus72 Nybegynder
09. november 2004 - 23:43 Der er 14 kommentarer og
1 løsning

Array problem med _root[arrayMedData[j][0]] kald..

// arrayMedData er et multi dimensionelt array med 5 "kolonner"
// med "titel" i index[1] men skidtet virker ikke, hvorfor?
// index[0] er instance navnene på _mc der skal styres.
//kode:

_root.onEnterFrame = function() {
    for (j=0; j<arrayMedData.length; j++) {
    _root[arrayMedData[j][0]].onRollOver = function() {   
    titel.text = _root[arrayMedData[j][1]];
                        }
                                          }
                                                          }
Avatar billede nikolajdu Nybegynder
10. november 2004 - 00:01 #1
prøv at trace variablerne det lyder som om du ikke får sat dem rigtigt.

trace(arrayMedData.length)
trace(arrayMedData[j]);
trace(arrayMedData[j][0]]);
trace(arrayMedData[j][1]]);
Avatar billede pegasus72 Nybegynder
10. november 2004 - 08:01 #2
Hvis jeg dropper _root.onEnterFrame = function() {} og
lader løkken køre igennem en gang, vises data fint men med
_root.onEnterFrame = function() {} er alt undtagen trace(arrayMedData.length)
undefined...
Mine _mc's er med button labels og bruger _root[arrayMedData[j][0]].onRollOver for
at aktivere dem som buttons.
Fatter intet men er jo også stadig grøn.
Glæder mig til den bog du skal skrive eller har skrevet?
Avatar billede nikolajdu Nybegynder
10. november 2004 - 11:28 #3
Nu er det vidst Morten Barklund der skriver bog ;-)

this.onEnterFrame = function() {
    for (j=0; j<arrayMedData.length; j++) {
        _root[arrayMedData[j][0]].onRollOver = function() {
            titel.text = _root[arrayMedData[j][1]];
        };
    }
    this.onEnterFrame = false;
};
Avatar billede pegasus72 Nybegynder
10. november 2004 - 11:52 #4
Nå ok... Gad vide hvornår den bog kommer?

Hvorfor this.onEnterFrame og så
_root[arrayMedData[j][0]], ville this[arrayMedData[j][0]]
være det samme?

Og hvad gør:  this.onEnterFrame = false;?
Avatar billede nikolajdu Nybegynder
10. november 2004 - 12:00 #5
Det er nok en hemmelighed ;-)

Naah ikke helt det kommer an på hvor du placerer scriptet. Ligger det i roden vil det være det samme. false sletter den onenterFrame vi har gang i ellers vil den jo blive ved med at køre loopet igennem.
Avatar billede nikolajdu Nybegynder
10. november 2004 - 12:01 #6
Hvad skal du bruge den onEnterFrame til ? Skal du ikke kun sætte teksten én gang?

    for (j=0; j<arrayMedData.length; j++) {
        _root[arrayMedData[j][0]].onRollOver = function() {
            titel.text = _root[arrayMedData[j][1]];
        };
    }
Avatar billede pegasus72 Nybegynder
10. november 2004 - 12:24 #7
Den skal køre hele tiden, så teksten ændrer sig efter hvilket _mc musen er over.
Det er en bunke _mc som hentes dynamisk ind vha arrayet.
Lige som produkterne i www.clydesonline.com
Hoverer musen over et produkt, skrives navnet op over.
Det samme her.
Titlen på billedet befinder sig i _root[arrayMedData[j][1]].
Avatar billede nikolajdu Nybegynder
10. november 2004 - 12:41 #8
i øvrigt skal den lige flyttes hvis du skal bruge den. Det giver ingen mening af definere en mouseover funktion xxx*framerate antal gange i sekundet.

this.onEnterFrame = function() {
    for (j=0; j<arrayMedData.length; j++) {
        _root[arrayMedData[j][0]].onRollOver = function() {
            titel.text = _root[arrayMedData[j][1]];
        };
    this.onEnterFrame = false;
    }
};
Avatar billede pegasus72 Nybegynder
10. november 2004 - 13:16 #9
Flyttes hvorhen?
Til det enkelte mc eller hvad mener du?
Ville det være smartest at lægge onRollOver i hvert enkelt mc istedet for at placere det hele i main timeline?
Så onRollOver i mc'et sætter titel.text i stedet for at køre en konstant løkke, er det det du mener?
Hvad er forskellen på din komentar: 11:28:03 og komentar: 12:41:01 ?
Avatar billede mat Nybegynder
10. november 2004 - 15:51 #10
wierd måde at skrive tingene på?

hvorfor refererer du ved "_root" når du lige ovenover refererer uden til dit "arrayMedData"? Iøvrigt kan du vist ikke referere til et array sådan:

someArr = [ [1, 4] ];
trace(_root[someArr[0][1]]); // undefined
trace(_root.someArr[0][1]); // 4

Du leder nok efter:

trace(_root["someArr"][0][1]); // 4

(som i 'associative arrays')

Og hvad med at rykke din kode ind i en funktion som du kalder på en given event? Der er ihvertfald næppe en god grund til at gøre det hele tiden i en enterFrame?

mvh mat
Avatar billede mat Nybegynder
10. november 2004 - 16:25 #11
ja ok nu tænkte jeg jo ikke lige i referencer til movieclips...så øhm :/ - well, nevermind me...
Avatar billede nikolajdu Nybegynder
18. november 2004 - 01:08 #12
fandt du ud af det eller har du flere oplysninger?
Avatar billede pegasus72 Nybegynder
08. januar 2005 - 21:25 #13
Hej igen...
Fandt ud af det.. Tak!
Svar...
Avatar billede pegasus72 Nybegynder
09. februar 2005 - 13:29 #14
Svar tak..
Avatar billede pegasus72 Nybegynder
13. september 2006 - 10:02 #15
Lukker
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