Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    31

    Assegnare eventi a MC creati dinamicamente

    Saluti a tutti,
    non ho ancora avuto modo di studiare l'AS 3 quindi lavoro ancora col 2 e mi trovo davanti ad un problema. Sto creando una photogallery con thumbnails. Queste ultime le carico prendendo i dati da un file XML e le infilo dentro MCs opportunamente creati. Il problema è che a questi MC devo assegnare un evento per richiamare l'immagine grande, ma non riesco, nè con il classico onRelease, nè con un Listener (che fra l'altro mi sembra di capire non funzioni coi MC). Il codice di seguito...

    //load XML-----------------------------------------------
    miniature = new XML();
    miniature.ignoreWhite = true;
    miniature.load("xml/miniature.xml");
    elenco = new Array(); var thumb:Number;

    //create arrays and MCs----------------------------------
    miniature.onLoad = function(success) {
    if (miniature.loaded) {
    var aNode:XMLNode = miniature.firstChild;
    thumb = aNode.childNodes.length;
    for (a=0; a<thumb; a++) {
    elenco[a] = aNode.childNodes[a].firstChild.nodeValue;
    ist = "img"+[a];
    thumbs.createEmptyMovieClip(ist,a*1);//create container
    ist1 = eval("thumbs."+ist);
    loadMovie(elenco[a], ist1);//load photo in container
    ist1.onRelease = function() {
    trace("pippo");
    };
    }
    }
    };
    In particolare, l'evento "pippo" non va...qualcuno mi sa dare una dritta?
    grazie a tutti

  2. #2
    prova a fare una cosa del genere dato che con un ciclo for viene eseguito tutto subito..

    Codice PHP:
    //load XML-----------------------------------------------
    miniature = new XML(); 
    miniature.ignoreWhite true;
    miniature.load("xml/miniature.xml");
    elenco = new Array(); var thumb:Number;

    //create arrays and MCs----------------------------------
    miniature.onLoad = function(success) { 
    if (
    miniature.loaded) { 
    var 
    aNode:XMLNode miniature.firstChild
    thumb aNode.childNodes.length
    for (
    a=0a<thumba++) { 
    elenco[a] = aNode.childNodes[a].firstChild.nodeValue;
    ist "img"+[a];
    thumbs.createEmptyMovieClip(ist,a*1);//create container
    //ist1 = eval("thumbs."+ist);
    thumbs["ist1"].num=a
    loadMovie
    (elenco[a], ist1);//load photo in container
    thumbs["ist1"].onRelease = function() {
    trace("il numero di questo clip"+this.num);
    };
    }
    }
    }; 
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    31
    Ti ringrazio per la risposta ma non ho capito bene 2 cose. La prima è che hai messo le // davanti alla riga che identifica il MC dove viene caricata la JPG, ma questo al limite non è un problema...
    Poi però non ho capito l'utilità di questa riga: thumbs["ist1"].num=a

    In ogni caso non funziona...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    31

    SOLUZIONE TROVATA

    Questa cosa può essere utile...dopo lunga riflessione ho capito che il problema sta nel fatto che il movieclip creato in runtime è di dimensioni 0x0 e che io assegno l'evento prima che venga caricata l'immagine all'interno. Di conseguenza l'evento viene assegnato ad un oggetto che, di fatto, non esiste. Ho perciò ritardato il comando utilizzando la classe MovieClipLoader, assegnando l'evento solo nel momento in cui l'immagine è caricata all'interno dell'MC che risulta quindi avere dimensioni "fisiche"...
    Grazie a tutti coloro che si sono interessati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.