Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    Duplicare e spostare oggetti

    Ciao a tutti.

    Devo duplicare degli oggetti e duplicarli.

    Al momento il mio codice è:

    onClipEvent (load) {
    a=1
    }

    on (press) {
    // duplico la clip
    a=(a++);
    trace("a: "+a);
    duplicateMovieClip(this, "mobile_2_"+a,1);

    // calcolo massimi spostamenti oggetto

    spostamenti_mouse_larghezza=_root.larghezza;
    spostamenti_mouse_profondita=_root.profondita;
    if(spostamenti_mouse_larghezza>spostamenti_mouse_p rofondita) {
    massima_dimensione=500;
    rapporto_scala=spostamenti_mouse_larghezza/massima_dimensione;
    spostamenti_mouse_larghezza=500;
    spostamenti_mouse_profondita=spostamenti_mouse_pro fondita/rapporto_scala;
    }
    if(spostamenti_mouse_larghezza<spostamenti_mouse_p rofondita) {
    massima_dimensione=500;
    rapporto_scala=spostamenti_mouse_profondita/massima_dimensione;
    spostamenti_mouse_profondita=500;
    spostamenti_mouse_larghezza=spostamenti_mouse_larg hezza/rapporto_scala;
    }


    partenza_x=200;
    partenza_y=0;
    // bordo superiore
    bordo_destro=partenza_x+parseFloat(spostamenti_mou se_larghezza);
    //bordo inferiore
    bordo_inferiore=partenza_y+parseFloat(spostamenti_ mouse_profondita);

    startDrag( this,false,partenza_x, partenza_y, bordo_destro, bordo_inferiore);
    this._alpha=70;


    }
    on (release) {
    stopDrag();
    this._alpha=100;

    }


    [/code]

    Così riesco a duplicare e a spostare. Il problema però è che l'oggetto spostato, una volta duplicato, riscompare.

    Che errori sto facendo?

    Ciao,
    Ale

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Probabilmente perchè una volta ricreato viene risettata a=1 e il nuovo movieclip viene creato sempre sul livello 1.

    prova a togliere

    Codice PHP:
    onClipEvent (load) {
    a=1

    a inserire

    a=1;

    nel primo frame della timeline principale e nel codice del movieclip a sostituire "a" con:

    Codice PHP:
    _root.++;
    trace("a: "+_root.a);
    duplicateMovieClip(this"mobile_2_"+_root.a,_root.a); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Adesso va meglio. però si verifica che gli oggetti già compiati, una volta draggati non si draggano +, ma ogni volta che si tenta di ridraggarli creano un duplicato.

    Hai qualche possibile soluzione?

    Ale

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Certo a ogni press viene creato un duplicato.

    Occorrerebbe capire bene cosa ti serve.
    Vuoi solo un movieclip madre che cliccato crea un figlio solamente draggabile?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Esatto. in pratica se clicchi il padre deve venire duplicato, sennò solo draggato.

    ALe

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Ok, cambio leggermente approccio allora.

    Sullo stage abbiamo un solo movieclip con nome istanza "myMov".
    Nessun codice al suo interno.

    Sul primo frame della timaline principale insesci:

    Codice PHP:
    var a:Number=1;

    myMov.onPress=function(){
        
    a++;
        
    duplicateMovieClip(myMov"myMov"+_root.a,_root.a);
        
        
    _root["myMov"+_root.a].onPress = function (){
            
    this.startDrag();
        }
        
    _root["myMov"+_root.a].onRelease = function (){
            
    this.stopDrag();
        }


    Ovviamente è da adattare alle tue esigenze.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Rieccomi.

    Ho provato a fare la modifica ma qualche cosa non funziona:

    codice:
    on (press) {
    	//	duplico la clip
    		_root.a ++; 
    		trace("a: "+_root.a); 
    		duplicateMovieClip(this, "mobile_2_"+_root.a,_root.a);
    
    _root["mobile_2_"+_root.a].onPress = function()	{
    	spostamenti_mouse_larghezza=_root.larghezza;
    	spostamenti_mouse_profondita=_root.profondita;	
    			if(spostamenti_mouse_larghezza>spostamenti_mouse_profondita)	{
    				massima_dimensione=500;
    				rapporto_scala=spostamenti_mouse_larghezza/massima_dimensione;
    				spostamenti_mouse_larghezza=500;
            spostamenti_mouse_profondita=spostamenti_mouse_profondita/rapporto_scala;
    			}
    	if(spostamenti_mouse_larghezza<spostamenti_mouse_profondita)	{
    				massima_dimensione=500;
    				rapporto_scala=spostamenti_mouse_profondita/massima_dimensione;
    				spostamenti_mouse_profondita=500;
              spostamenti_mouse_larghezza=spostamenti_mouse_larghezza/rapporto_scala;
    	}			
    
    	partenza_x=200;
    	partenza_y=0;
    	// bordo superiore
    	bordo_destro=partenza_x+parseFloat(spostamenti_mouse_larghezza);
    	//bordo inferiore
    	bordo_inferiore=partenza_y+parseFloat(spostamenti_mouse_profondita);
    	
    	_root["mobile_2_"+_root.a].startDrag( this,false,partenza_x, partenza_y, bordo_destro, bordo_inferiore);
    	trace("bordo_dx:"+bordo_destro+"bordo_inferiore:"+bordo_inferiore);
    	_root["mobile_2_"+_root.a]._alpha=70;
    }
    _root["mobile_2_"+_root.a].onRelease = function()	{
    	_root["mobile_2_"+_root.a].stopDrag();
    	_root["mobile_2_"+_root.a]._alpha=100;
    }
    }
    Non va il release.

    ALe

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    583
    Così non cambi la situazione.

    Anche i figli quando sono onPress duplicano.

    Riguarda il mio esempio.

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.