Avatar billede cowboy Nybegynder
26. juni 2003 - 11:36 Der er 10 kommentarer og
1 løsning

XML og mouse event

Ok, jeg ved ikke helt hvordan jeg skal beskrive mit problem, men her er et forsøg:

Jeg har modficeret et Flash/XML eksempel som jeg har set her. http://actionscript-toolbox.com/xmlintoflash.php

Min XML kode ser således ud:

<nyheder>
        <reference id="01">
            <url>http://www.newz.dk</url>
            <overskrift>Newz</overskrift>   
        </reference>
        <reference id="02">
            <url>http://www.google.com</url>
            <overskrift>Google</overskrift>           
        </reference>
        <reference id="03">
            <url>http://www.jubii.dk</url>
            <overskrift>Jubii</overskrift>   
        </reference>
        <reference id="04">
            <url>http://www.msn.dk</url>
            <overskrift>MSN</overskrift>           
        </reference>
        <reference id="05">
            <url>http://www.yahoo.dk</url>
            <overskrift>Yahoo</overskrift>           
        </reference>
</nyheder>

========================================================

I første frame af min .SWF harjeg følgende kode :

function Article(id, link, overskrift) {
    this.id = id;           
    this.link = link;
    this.overskrift = overskrift;
}

function makeArray(success) {
  var i, j, mainTag, id, link, overskrift;
  if (success) {
      for (i=0; i<=moXML.childNodes.length; i++) { 
        if (this.childNodes[i].nodeValue == null && this.childNodes[i].nodeName == "nyheder") {
            mainTag = this.childNodes[i];
        }
      }

      for (i=0; i<=mainTag.childNodes.length; i++) { 
        if (mainTag.childNodes[i].nodeName == "reference") {
            articleTag = mainTag.childNodes[i];
            id = articleTag.attributes["id"];
            for (j=0; j<articleTag.childNodes.length; j++) {
              if (articleTag.childNodes[j].nodeName != null) {
                  if (articleTag.childNodes[j].nodeName == "url") {
                      link = articleTag.childNodes[j].firstChild.nodeValue;
                  } else if (articleTag.childNodes[j].nodeName == "overskrift") {
                    overskrift = articleTag.childNodes[j].firstChild.nodeValue;
                    }         
              }
              }
            thisArticle = new Article(id, link, overskrift);
            articles.push(thisArticle);
            delete thisArticle;
        }
      }
      _root.gotoAndStop("showArticles");
  }
}

// articles is an array of Article objects
var articles = [];

// read xml and display when loaded
moXML = new XML(); 
moXML.ignoreWhite = true;
moXML.onLoad = makeArray;
moXML.load("test.xml");
stop();

=====================================================
10 frames længere frem i min .swf har jeg en frame label der hedder "showArticles"

og i framen har jeg følgende kode :

placey = getProperty("ref0", _y);
ref0.menu.news = "";

for (i=0; i<articles.length; i++) {
    duplicateMovieClip(ref0, "ref" + i, i);
    setProperty("ref"+i, _y, placey + 15*i);
    ref = eval("ref"+i);
    ref.menu.news = "<a href='" + articles[i].link + "'>" + articles[i].overskrift + "</a><br>";
    //news += "  <font color='#cccccc'>(" + articles[i].source + ")</font><br>";
}

=========================================================

I samme frame, men et andet lag, har jeg et MovieClip som hedder "ref0" som består af 2 MovieClips og et action layer i toppen. I Action layeret står der følgende action:

pil. _visible = 0
menu.onRollOver = function(){
    pil. _visible = 1
    }

Det ene MovieClip hedder "pil" og er en grafisk pil. Det andet hedder "menu". "menu" består af at Dynamisk txtfelt som har et variabelt navn "news".

Det jeg godt vil spørge om er:

Hvordan laver jeg en "onRollOver" på MovieClipet "menu" som sætter "pil" til _visible = 1 og dermed viser MovieClipet "pil"

Som i kan se i eksemplet har jeg forsøgt mig med:

menu.onRollOver = function(){
    pil. _visible = 1
}

Men der sker ikke noget.

Jeg tror måske at i er nødtil at se .fla og det må i da også gerne, men kig lige eksemplet igennem først og se om har mulighed for at gøre noget. Ellers er det fjollet.

Jeg håber der nogen der kan løse det.
Avatar billede mat Nybegynder
26. juni 2003 - 11:49 #1
menu.onRollOver = function() {
    this.pil._visible = 1;
}
Avatar billede cowboy Nybegynder
26. juni 2003 - 11:57 #2
hehe, godt forsøgt. Men den har jeg også prøvet. Den duer ikke. Det er det, der er så mærkligt
Avatar billede mat Nybegynder
26. juni 2003 - 11:59 #3
jeg skal lige have en ting på plads, hvad har alt det der xml-hejs at gøre med det egentlige spørgsmål? er problemet kun at få vist et movieclip på rollOver af en andet? pil ligger i roden eller i menu-movieclippet?

mvh mat
Avatar billede cowboy Nybegynder
26. juni 2003 - 12:09 #4
Problemmet er at jeg kan godt få det til at virke, hvis jeg laver en ny .fla uden XML'en og bare laver det sådan at onRollOver et Movieclip skal vise et andet. Men jeg skal bruge det iforbindelse med XML'en så det er vigtigt at det virker der.

MovieClippet "ref0" som ligger i foden, består af 2 movieclip. det ene er "pil" og det andet er "menu".
Avatar billede cowboy Nybegynder
26. juni 2003 - 12:09 #5
foden = roden
Avatar billede cowboy Nybegynder
26. juni 2003 - 12:10 #6
Jeg har brug for hjælp af nogen som kan Flash og XML sammen, tror jeg!!!
Avatar billede mat Nybegynder
26. juni 2003 - 12:53 #7
Jeg kan ikke se hvad det har med hinanden at gøre? Fordi du parser noget xml er det da fløjtende ligegyldigt hvad der ellers foregår i din movie?

Hvis du ikke har mulighed for at uploade en fla (og xml) er du velkommen til at sende det til mig (min mail står på mit minisite).

mvh mat
Avatar billede cowboy Nybegynder
26. juni 2003 - 12:55 #8
Du har ret, det mener jeg også. Men af en eller anden grund virker det ikke når jeg sætter det ind i min xml .fla

Jeg sender det til dig.
Avatar billede cowboy Nybegynder
02. juli 2003 - 09:57 #9
<<< Mat>>>>>> Kom lige med et svar, så jeg kan give dig nogle points.
Avatar billede mat Nybegynder
02. juli 2003 - 19:33 #10
kommer her :)
Avatar billede cowboy Nybegynder
10. august 2003 - 15:04 #11
Shit, jeg troede jeg havde lukket det her spg. Det beklager jeg!
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