Avatar billede cowboy Nybegynder
19. marts 2007 - 09:23 Der er 4 kommentarer

knap på MC fra XMLData

Hej,

Mit spørgsmål går på hvordan jeg får mine MC til at fungere som knapper. Jeg henter noget XML data som jeg looper igennem og ligger ned i hver sit MC. Jeg kunne så godt tænke mig at kunne få hver MC til at linke hen til "swflink" som jeg jeg har hentet fra xml'en. Her er min kode:

//load XML
    var myXML:XML = new XML();
    var rootNode:XMLNode;
    var img:Array = new Array();
    var headertxt:Array = new Array();
    var swflink:Array = new Array();
    myXML.ignoreWhite = true;
    myXML.onLoad = processXML;


function processXML(success:Boolean) {
    if (success) {
        rootNode = this.firstChild;
        loopThroughXML();
    } else {
        trace("error");
    }
}
myXML.load("opskifter.xml");

//looper igennem XML
function loopThroughXML() {
    Antal_opskrifter = rootNode.childNodes.length;
    //trace (Antal_opskrifter);
    for (var i:Number = 0; i<Antal_opskrifter; i++) {
    headertxt[i] = rootNode.childNodes[i].attributes.headertxt;
    img[i] = rootNode.childNodes[i].attributes.img;
    swflink[i] = rootNode.childNodes[i].attributes.swflink;
    //trace (i+": "+headertxt[i])
    //trace (i+": "+img[i])
    }
    indsaetXML();
}



var containerYplacering = 121;

function indsaetXML() {
    attachMovie("MCcontainer", "container0", 10);
    container0._x = 0;
    container0.HeaderTxt.text = headertxt[0];
    container0.imgContainer.loadMovie(img[0]);
   
    for(var i:Number = 1; i<Antal_opskrifter; i++){
    container0.duplicateMovieClip("container"+i, i);
    this["container"+i]._y += containerYplacering;
    containerYplacering += 121;
    this["container"+i].HeaderTxt.text = headertxt[i];
    this["container"+i].imgContainer.loadMovie(img[i]);
    trace(this["container"+i]);
    }
    _parent.scrolling();
}
Avatar billede larsholmgaard_dk Nybegynder
19. marts 2007 - 10:51 #1
Hej cowboy,

Prøv at kigge lidt på mit svar i dette spørgsmål:
http://www.eksperten.dk/spm/768024
Avatar billede cowboy Nybegynder
19. marts 2007 - 11:22 #2
ok, jeg prøver. Det som jeg ikke helt forstår ved eksemplet er, hvordan mc.onRelease kan virker efter loppet er stopppet
Avatar billede cowboy Nybegynder
19. marts 2007 - 11:32 #3
hmm, jeg forsøgte sådan her, uden held:

function indsaetXML() {
    attachMovie("MCcontainer", "container0", 10);
    container0._x = 0;
    container0.HeaderTxt.text = headertxt[0];
    container0.imgContainer.loadMovie(img[0]);
   
    for(var i:Number = 1; i<Antal_opskrifter; i++){
    container0.duplicateMovieClip("container"+i, i);
    var mcBtn:MovieClip = this["container"+i].createEmptyMovieClip("mcBtn"+i, i+1);
    this["container"+i]._y += containerYplacering;
    containerYplacering += 121;
    this["container"+i].HeaderTxt.text = headertxt[i];
    this["container"+i].imgContainer.loadMovie(img[i]);
    //trace(this["container"+i]);
   
    this["container"+i].mcBtn.onRelease = function() {
        trace(this._name);
        trace("test");
    };
   
    }
    _parent.scrolling();
}
Avatar billede mat Nybegynder
19. marts 2007 - 17:18 #4
mcBtn er en reference til dit tomme movieclip, hvis scope er din funktion, derfor bør du kunne referere direkte;

mcBtn.onRelease = funktion;

Men derudover ser det ikke umiddelbart ud til at mcBtn+i har nogen "udstrækning", det spænder over et punkt, hvorfor en onRelease event bliver mere end svær at udløse?

mvh mat
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