Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641

    duplicate. calcola x e y

    ciao a tutti.
    ho un mc che duplico tot volte in base agli elementi che ho nel mio file xml. sempre all'interno del file xml, imposto x e y per ogni mc duplicato. fin qui tutto ok.
    dopo il ciclo for, metto:

    duplicateMovieClip("mc", "mc"+[k],k);

    a questo punto vorrei draggare i miei mc muovendo un altro oggetto (square) e quindi vado a scrivere questo as sul mio mc che viene duplicato:

    onClipEvent(enterFrame) {
    this._x = _root.square._x * 2;
    this._y = _root.square._y * 2;
    }

    purtroppo però mi vengono prese in considerazione solo x e y dell'ultimo mc duplicato e quindi i mc sono uno sopra l'altro.
    Come faccio a memorizzare x e y di ogni mc duplicato?

    spero di non aver fatto troppo casino!!!
    grazie

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    quando duplichi il clip gli passi anche le variabili relative

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    dopo aver duplicato il clip faccio:

    _global.xpos = (myarray[k].attributes.xxpos);
    _global.ypos = (myarray[k].attributes.yypos);

    _root["mc" + k]._x = xpos
    _root["mc" + k]._y = ypos

    _global.xposNew = _root["mc" + k]._x;
    _global.yposNew = _root["mc" + k]._y;

    e mi vengono posizionati giusti, ma, quando sul mc metto

    onClipEvent(enterFrame) {
    this._x = (xposNew + (_rootsquare._x * 2));
    this._y = (yposNew + (_root.square._y * 2));
    }

    non mi tiene in considerazione le x e y calcolate. me li mette tutti uno sopra l'altro. dovrei dirgli di tenere in memoria x e y di ogni mc duplicato, ma...non riesco in nessun modo

  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    for (gal=1;gal<=10;gal++){
    _root.gallery.duplicateMovieClip("gallery"+gal,gal )
    _root["gallery"+gal]._x= ((_root.gallery._width)*gal)+5

    }

    così ti affianca tutti i clip duplicati

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    scusa se stresso!
    come ho fatto io, i mc mi vengono posizionati dove voglio io, ma quando sul mc vado a dire che, in base allo spostamento del mio oggetto "square", deve prendere la sua posizione (quella da me "trovata" tramite il cilo for) e sommarla alla posizione del mio square, lui non conosce più la posizione di ogni mc, ma solo quella dell'ultimo mc calcolato dal ciclo for e li posiziona tutti lì.
    se invece non voglio dargli una nuova posizione relativa al mio oggetto square, e quindi non metto as sul layer del mc duplicato, allora fila tutto liscio ma non vengono ovviamente draggati i mc.

    cmq per il momento ti ringrazio molto per l'attenzione e le risposte

  6. #6
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    _global.xposNew = _root["mc" + k]._x;
    _global.yposNew = _root["mc" + k]._y;

    facendo così rilevi sempre la posizione del clip relativo
    all'ultimo valore di k
    se ne vuoi spostare uno devi mettere il suo indice e non k
    prova a tracciarti la k -------> trace(k)

    se invece li vuoi spostare tutti devi ciclare di nuovo tutti i clip
    incrementando o decrementando tutte le _x e le _y di ogni clip


    onClipEvent(enterFrame) {
    this._x = (xposNew + (_rootsquare._x * 2));
    this._y = (yposNew + (_root.square._y * 2));
    }
    se tutti i clip hanno questa azione tutti i clip si comporteranno
    allo stesso modo.

    quindi ti conviene:
    dalla _root
    _root["mc" + clip che vuoi spostare].onEnterFrame=function(){
    //azioni
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    grazie mille di tutto. ora provo
    ciao ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    ti stresso ancora!!!
    ho fatto come dici tu ma...non viene, nel senso che mi posiziona tutti i mc alla stessa x e y.

    allora, dopo il ciclo for che mi carica i dati dal file xml, ho provato a inserire:

    duplicateMovieClip("mc", "mc"+[k],-k);
    _global.xpos = (myarray[k].attributes.xxpos);
    _global.ypos = (myarray[k].attributes.yypos);
    _root["mc" + k]._x = xpos;
    _root["mc" + k]._y = ypos;
    // fin qui posizionamento corretto
    trace("prima x: " + _root["mc" + k]._x)

    _root["mc" + k].onEnterFrame = function (){

    trace("seconda x: " + _root["mc" + k]._x)
    this._x = (["mc" + k]._x + (_root.square._x * 2));
    this._y = (["mc" + k]._y + (_root.square._y * 2));
    trace("terza x: " + this._x)
    };

    il fatto è che nel primo trace (prima x mi da la x corretta ossia i pixel che io ho indicato nel file xml, ma nel secondo trace (quello contenuto in onEnterFrame) mi da undefined. il terzo mi da ancora le posizioni inserite nell'xml.

    A questo punto, visto che ogni ["mc" + k] ha una sua x e y, come faccio a dire che ogni

    ["mc" + k] deve prendere il suo valore x definito nell'xml + la x dello spostamento del mio clip "square"? e quindi che muovendo "square" ogni "mc" deve essere suo x + square._x?


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.