Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483

    Movimento di duplicati con AS

    Se io ho dei MovieClip duplicati che, alla pressione di un pulsante, dovranno raggiungere delle coordinate diverse sullo stage con effetto inerzia, come posso farle partire con un pò di ritardo una dall'altra?
    Da tenere conto che ne ho parecchie, per cui sono costretto a usare un ciclo for, il quale purtroppo dà un movimento conteporaneo a tutte.
    Le stesse clip poi, a una pressione ulteriore del pulsante, dovranno tornare nella loro posizione originaria, sempre con inerzia e ritardo.
    C'è qualcuno che può darmi una mano?
    Grazie

  2. #2
    non usare il ciclo di for, che ti crea problemi di INDIPENDENZA tra una e l'altra clip, ma attacca a ogni clip una sua funzione(la funzione sarà la stessa ma cambieranno delle variblili per ognuna) così poi se ne vanno per conto loro!
    yo!

  3. #3
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483
    Sì ma le mie clip sono un centinaio, non posso attaccare una funzione per ogni clip, non mi passa più. Non trovi?

  4. #4
    in modo dinamico, babe!

    diciamo che la clip che duplichi contenga la funzione che la fa muovere

    //
    this.onEnterFrame = function (){
    this_x+= this.xValore;
    this_y+= this.yValore;
    }
    this.xValore = 10;
    this.yValore = 5;
    //

    perciò la prima clip si muove cosi

    quando la duplichi
    //
    for(i=0 ; i<100 ; i++){
    duplicate(etc etc)
    nomeNuovoMovie.xValore = random(30);
    nomeNuovoMovie.yValore = random(30);
    }
    //

    in questo modo ogni clip contiene la stessa funzione.. ma la utilizza con valori differenti

    la teoria è chiara?
    naturalmente ci sono 1000 modi divrsi i impostare la cosa... ma l'idea di base può essere questa

  5. #5
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483
    Aaaan ora t'ho capito...
    grazie
    ciao

  6. #6
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483
    Sorry ma non mi funziona:

    nMc=100;
    mc.xValore = 1;
    mc.yValore = -1;
    mc.onEnterFrame = function (){
    this._x += this.xValore;
    this._y += this.yValore;
    }
    _root.onEnterFrame = function(){
    for(i=1 ; i<=nMc ; i++){
    duplicateMovieClip("mc","mc"+i,i);
    _root["mc"+i].xValore = random(6);
    _root["mc"+i].yValore = random(6);
    }
    }
    ///////
    In pratica vanno tutte nella stessa direzione. Dove sbaglio?

  7. #7
    metti mc al centro dello Stage, incolla questo codice e fammi sapere...

    codice:
    nMc = 100;
    _root.mc._visible=false;
    for (i=1; i<=nMc; i++) {
    	duplicateMovieClip("mc", "mc"+i, i);
    	_root["mc"+i].spostamento = 1+Math.random()*5;
    	_root["mc"+i].angolo = Math.random()*2*Math.PI;
    	_root["mc"+i].onEnterFrame = function() {
    		this._x += this.spostamento*Math.cos(this.angolo);
    		this._y += this.spostamento*Math.sin(this.angolo);
    		if (this._x<0 || this._x>Stage.width || this._y<0 || this._y>Stage.height) {
    			this.removeMovieClip();
    		}
    	};
    }
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

  8. #8
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483
    L'effetto finale è di grande impatto, complimenti.

  9. #9
    Utente di HTML.it L'avatar di Uanne
    Registrato dal
    Nov 2001
    Messaggi
    483
    Tuttavia il mio problema fondamentale era un altro. Ho usato la tua impostazione per il mio caso e ho scritto questo codice:

    nMc = 15;
    for (i=1; i<=nMc; i++) {
    duplicateMovieClip("mc", "mc"+i, i);
    _root["mc"+i].targetx = i*25;
    _root["mc"+i].targety = 50;
    _root["mc"+i].onEnterFrame = function() {
    this._x = this._x+(this.targetx-this._x)/6;
    this._y = this._y+(this.targety-this._y)/6;
    }
    }

    Se lo provi, noterai che tutte le clip raggiungono la loro posizione contemporaneamente. Quello che non riesco a fare è dar loro un ritardo dimodochè arrivino una alla volta.

  10. #10
    non riesco a capire bene cosa vuoi...
    prova così:

    codice:
    nMc = 15; 
    for (i=1; i<=nMc; i++) { 
    duplicateMovieClip("mc", "mc"+i, i); 
    _root["mc"+i].targetx = i*25; 
    _root["mc"+i].targety = 50;
    _root["mc"+i].rit=6+i;
    _root["mc"+i].onEnterFrame = function() { 
    this._x = this._x+(this.targetx-this._x)/this.rit; 
    this._y = this._y+(this.targety-this._y)/this.rit; 
    } 
    }
    [Il mio sito V2]
    ___________________
    I.m.The.Magic.Man

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.