Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505

    creare tanti mc quanti sono i dati estratti da un db

    Ciao,

    spero che non siate tutti in vacanza
    Il mio problema é il seguente:

    in una pagina flash inserisco un movieclip di nome "dati".
    A questo movieclip associo il seguente AS per estrarre i dati, tramite una pagina php, da un db e li visualizzo. Fin qui tutto bene.

    onClipEvent (load) {
    this.stop();
    mio_xml = new XML();
    mio_xml.path = this;
    mio_xml.ignoreWhite = true;
    mio_xml.onLoad = function(success)
    {
    if(success){
    var t1 = "<font color='#000000'>";
    var t2 = "<font color='#000000'>";
    var t3 = "</font>";
    var nodes = this.firstChild.childNodes;
    for(var i = 0; i < nodes.length; i++){
    var myID = nodes[i].attributes.myID;
    var foto_small = nodes[i].attributes.foto_small;
    this.path.testo += t1 + myID + t3 + "
    ";
    this.path.testo += t2 + foto_small + t3 + "
    ";
    this.path.testo += "
    ";
    }
    } else {
    this.path.testo = "caricamento errato";
    }
    this.path.nextFrame();
    };
    mio_xml.load("xml_thumbs.php");
    }


    Ho provato una seconda pagina flash in cui ho inserito un movieclip che contiene un quadrato e l'ho istanziato "mc". Sul frame associo il seguente AS per disporre tot di questi mc su 2 colonne. E fin qui tutto bene

    function disponi(clip, numTot, numRig, distHor, distVert) {
    numCol = Math.ceil(numTot/numRig);
    posX = new Array();
    posY = new Array();
    startX = clip._x;
    startY = clip._y;
    cont = 0;
    for (xx=0; xx<numCol; xx++) {
    for (a=0; a<numRig; a++) {
    posX.push(startX+(clip._width+distHor)*a);
    }
    }
    for (yy=0; yy<numCol; yy++) {
    for (b=0; b<numRig; b++) {
    posY.push((startY)+(clip._height+distVert)*yy);
    }
    }
    for (num=0; num<numTot; num++) {
    duplicateMovieClip(clip, "clipDuplicato"+num, num);
    _root["clipDuplicato"+num]._x = posX[num];
    _root["clipDuplicato"+num]._y = posY[num];
    _root["clipDuplicato"+num]._alpha = 0;
    }
    function effetto() {
    _root["clipDuplicato"+cont]._alpha = 100;
    if (cont == numTot) {
    clearInterval(intv);
    }
    cont++;
    }
    intv = setInterval(effetto, 10);
    }
    disponi(_root.mc, 7, 2, 5, 5);


    Ora, la domanda, se nella prima pagina flash non volessi visualizzare i dati, ma disporre su 2 colonne tanti quadrati quanti sono i record del db, come posso integrare i due codici AS?

    Grazie
    Ciao
    Sempre più in alto...
    www.webdition.com

  2. #2
    beh potresti creare una funzione che richiama la funzione disponi passando il nome del clip ed il totale dei clip da disporre che prenderai dalla lettura dei dati

    function CreaTabelle () {
    disponi(_root.mc, tot, 2, 5, 5);


    };


    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 L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    cioé in pratica se ho ben capito:

    nella mia pagina flash (la prima) inserisco il movieclip "dati" a cui associo il primo codice AS come attualmente.
    All'interno di questo movieclip inserisco il movieclip "mc" e lo istanzio.
    Il secondo codice AS e la funzione che tu hai detto a questo punto dove devo inserirli?
    Sempre più in alto...
    www.webdition.com

  4. #4
    metti tutto il tuo cod nel primo frame ovviamente togli il popolamento dei dati
    e alla fine della lettura dei dati richiami la funzione che dispone i clip sullo stage con una cosa del genere

    Codice PHP:
    onClipEvent (load) {
    this.stop();
    mio_xml = new XML();
    mio_xml.path this;
    mio_xml.ignoreWhite true;
    mio_xml.onLoad = function(success)
    {
    if(
    success){
    var 
    t1 "<font color='#000000'>";
    var 
    t2 "<font color='#000000'>";
    var 
    t3 "</font>";
    var 
    nodes this.firstChild.childNodes;
    for(var 
    0nodes.lengthi++){
    var 
    myID nodes[i].attributes.myID;
    var 
    foto_small nodes[i].attributes.foto_small;
    //questa parte ora non ti serve magari basta che togli la vcasella dallo stage
    this.path.testo += t1 myID t3 "
    "
    ;
    this.path.testo += t2 foto_small t3 "
    "
    ;
    this.path.testo += "
    "
    ;
    }
    } else {
    this.path.testo "caricamento errato";
    }
    //qua se ho ben capito e il tot dovrebbe essere nodes.length
    disponi(_root.mcnodes.length255);
    };
    mio_xml.load("xml_thumbs.php");
    }

    function 
    disponi(clipnumTotnumRigdistHordistVert) { 
    numCol Math.ceil(numTot/numRig); 
    posX = new Array(); 
    posY = new Array(); 
    startX clip._x
    startY clip._y
    cont 0
    for (
    xx=0xx<numColxx++) { 
    for (
    a=0a<numRiga++) { 
    posX.push(startX+(clip._width+distHor)*a); 


    for (
    yy=0yy<numColyy++) { 
    for (
    b=0b<numRigb++) { 
    posY.push((startY)+(clip._height+distVert)*yy); 


    for (
    num=0num<numTotnum++) { 
    duplicateMovieClip(clip"clipDuplicato"+numnum); 
    _root["clipDuplicato"+num]._x posX[num]; 
    _root["clipDuplicato"+num]._y posY[num]; 
    _root["clipDuplicato"+num]._alpha 0

    function 
    effetto() { 
    _root["clipDuplicato"+cont]._alpha 100
    if (
    cont == numTot) { 
    clearInterval(intv); 

    cont++; 

    intv setInterval(effetto10); 


    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 !

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.