Avatar billede nc85 Nybegynder
06. juni 2008 - 12:15 Der er 2 kommentarer

Skift kun ved MouseOver

Jeg har en flash fil, sådan som den fungerere lige nu er at den henter noget xml ind, og fader mellem x antal billeder og tekst.

Dog skal den fungere sådan at når man rollOver flashen (Transparent MC) så skal den gå til billede2, og ved RollOut skal den gå tilbage til billede 1, dog ved jeg ik helt hvordan og hvorledes jeg skal få modificeret min kode til at gøre dette...

Min kode:

_root.p = 0;

//Hent XML

function loadXML(loaded) {
    //Hvis XML er Loaded/Hentet
    if (loaded) {
        xmlNode = this.firstChild.childNodes[7].childNodes[0].childNodes[0].childNodes[1].childNodes[0].childNodes[6].childNodes[0].childNodes[1].childNodes[1].childNodes[0].childNodes[0];
        //heading = xmlNode.childNodes[0].childNodes[1].childNodes[0].childNodes[0].firstChild.nodeValue;
        //url = xmlNode.childNodes[0].childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[4].firstChild.nodeValue;
          //maintext = xmlNode.childNodes[0].childNodes[1].childNodes[0].childNodes[4].childNodes[0];
        //image = xmlNode.childNodes[0].childNodes[1].childNodes[0].childNodes[3].childNodes[0].childNodes[5].attributes.Src;
        //trace(image);
        //trace(xmlNode);
        heading = [];
        image = [];
        url = [];
        maintext = [];
       
        _root.total = xmlNode.childNodes.length;
        //trace(total);
               
        for (i=0; i<total; i++) {
           
            heading[i] = xmlNode.childNodes[i].childNodes[1].childNodes[0].childNodes[0].firstChild.nodeValue;
            image[i] = xmlNode.childNodes[i].childNodes[1].childNodes[0].childNodes[3].childNodes[0].childNodes[5].attributes.Src;
            url[i] = xmlNode.childNodes[i].childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[4].firstChild.nodeValue;
            maintext[i] = xmlNode.childNodes[i].childNodes[1].childNodes[0].childNodes[4].childNodes[0];
           
            //trace(heading);
            //trace(xmlNode.childNodes[i].childNodes[1].childNodes[0].childNodes[3].childNodes[0].childNodes[4].attributes.Src);
            //trace(url);
            //trace(maintext);
           
        }
        upDatePic();
    } else {
        content = "file not loaded!";
        trace(content);
    }
}

xmlCabiData = new XML();
xmlCabiData.ignoreWhite = true;
xmlCabiData.onLoad = loadXML;

//http://cabidev2.synkronvia.com/Forside/Sektioner/Jobcentre/flash?xml=1
//xmlCabiData.load("XMLFILE.xml");

xmlCabiData.load("http://cabiweb.inforce.dk/Forside/Sektioner/Jobcentre/flash?xml=1");
//trace(_url);
//xmlurl = xmlCabiData.load("Flash?xml=1");

//Opdaterer billede (Henter nyt billede)
function upDatePic (){
    for (i=0; i<total; i++) {
        if (loaded == filesize) {
            trace(_root.p);
            picture._alpha = 0;
            picture.loadMovie("http://cabiweb.inforce.dk/"+image[p],1);
            //trace(picture.loadMovie("http://cabidev2.synkronvia.com/"+image[p],1));
            TextUpdate(_root.p);
            picture_num();
            if(_root.p == "0"){
                stop();
            }
        }
    }
}

function picture_num() {
    current_pos = p+1;
    pos_txt = current_pos+" / "+total;
}

function TextUpdate(p){
    for (i=0; i<total; i++) {
        _root.fadingText();
       
        //Hent heading der svarer til p
        heading = xmlNode.childNodes[p].childNodes[1].childNodes[0].childNodes[0].firstChild.nodeValue;
       
        //Hent url der svarer til p
        url = xmlNode.childNodes[p].childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[4].firstChild.nodeValue;
   
        //Hent tekst der svarer til p
        mainTextMC.maintext = xmlNode.childNodes[p].childNodes[1].childNodes[0].childNodes[4].childNodes[0];
    }
}

function fadingText(){

        //sørger for at tekstfeltet ved start er transperant
      mainTextMC.mainTXT._alpha = 0;
      picture._alpha = 0;
      var endAlpha:Number = 100;
      var endAlpha2:Number = 100;
      this.onEnterFrame = function(){
            //Sørger for at tekstfeltet ikke bliver ved med at ligger 10 til i _alpha
          if(mainTextMC.mainTXT._alpha < endAlpha){
                //ligger 6 til tekstfeltets alpha værdi 12 gange i sekundet
                mainTextMC.mainTXT._alpha += 6;
                picture._alpha += 6;
                //trace(mainTextMC.mainTXT._alpha += 6);
          }
                //slutter onEnterFrame når tekstfeltet er fuldt synligt
            else{
                delete this.onEnterFrame;
          }
      }
}

function jumpToURL(p) {
    url = xmlNode.childNodes[p].childNodes[1].childNodes[0].childNodes[2].childNodes[0].childNodes[4].firstChild.nodeValue;
    getURL(url);
}



----------------------------------

På mit transparente MC, ser den lige nu sådanne ud:

on(rollOver){
    _root.upDatePic();
}
Avatar billede andersbro Nybegynder
06. juni 2008 - 12:22 #1
Flash kan ikke registrere rollout, hvis musen bevæger sig udenfor selve flash-filen. Så får du ikke nogen event.
Så hvis det er et normalt slideshow, som ligger på en html-side, skal du gøre noget andet, f.eks. med setInterval.
Avatar billede nc85 Nybegynder
06. juni 2008 - 13:20 #2
Ok, men i hvert fald er jeg stadig på helt bar bund og hvordan er hvorledes?? og hvordan jeg gør at den skifter til billede 2 ved rollOver
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