Avatar billede bingokaj Nybegynder
23. september 2004 - 22:53 Der er 4 kommentarer og
1 løsning

problem med xml-loop

Jeg er ved at lave en nyhedsoversigt i flash. Tjek http://www.itsohsoquiet.dk/test3.html.

Til det formål bruger jeg et loop til at duplikere et movieclip, som indeholder en button. Dets instance name er "news_btn".

Mit problem er at jeg kun kan sætte rollover/rollout på det sidste movieclip i loopet.

Jeg bruger følgende kode (uddrag fra et større loop):

var hep = "mc_overskrift"+i;

//sæt rollover for nyheds_menupunkt
_root[hep].news_btn.onRollOver = function () {
    with (_root[hep].pil_mc){
    gotoAndStop(2);
    }
}

//sæt rollout for nyheds_menupunkt
_root[hep].news_btn.onRollOut = function () {
      with (_root[hep].pil_mc){
    gotoAndStop(1);
    }
}

Såvidt jeg kan greje er problemet at flash ikke kan finde ud af det når jeg har 5 movieclips (_root.mc_overskrift1, _root.mc_overskrift2, etc) som alle indeholder en knap med instancename "news_btn". Så overskriver den hele tiden værdien. Men kan det virkelig passe at jeg skal sørge for at give min button et unikt navn for hver movieclip jeg duplikerer - er der ikke en lettere måde ?!?
Avatar billede pyroman Nybegynder
23. september 2004 - 23:22 #1
hmmm - burde virke... hvad er problemet i det link du viser?
Avatar billede barklund Nybegynder
23. september 2004 - 23:39 #2
Variablen "hep" peger på inden i dine funktioner på den værdi, som "hep" måtte have til den tid - hvilket er den sidst tildelte værdi. Udnyt det faktum, at funktionerne kører i knappens scope og lav en generel funktion uden for dig loop som:

function rollOver() {
    this._parent.pil_mc.gotoAndStop(2);
}
function rollOut() {
    this._parent.pil_mc.gotoAndStop(1);
}

Og i dit loop:

var hep = _root["mc_overskrift"+i];
//sæt rollover for nyheds_menupunkt
hep.news_btn.onRollOver = rollOver;
hep.news_btn.onRollOut = rollOut;
hep.news_btn.onDragOut = rollOut;

Derudover sætter ovenstående også dragOut hvilket nok er nødvendigt for ikke at give fejl :)

--
Morten Barklund
Avatar billede barklund Nybegynder
23. september 2004 - 23:39 #3
plus-minus et par bogstaver hist og her - du forstår det nok alligevel ;)
Avatar billede bingokaj Nybegynder
25. september 2004 - 12:07 #4
hej barklund, atter engang redder du mig ud af suppedasen. Det virkede ikke først, men jeg rettede hep.news_btn.onRollOver = rollOver; til _root[hep].news_btn.onRollOver = rollOver; i stedet for og så virkede det sgu :-D

mucho gracias
Avatar billede barklund Nybegynder
25. september 2004 - 13:15 #5
Jeg havde også ændret "hep", nemlig tildelt den i linjen før. Så er den ikke en streng der skal evalueres som en egenskab på _root men en direkte reference til det nye movieclip. Det er lidt smartere ;)

Men tark for points :)
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