Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Muovere MC con ActionScript azionando da pulsante

    ciao a tutti,
    so che ci sono di sicuro altri thread riguardanti questo ma non ho trovato ciò che cercavo quindi chiedo a voi.

    sto sperimentando il movimento di un mc da actionscript. Nel mio stage ho un'istanza che si chiama Ball e un pulsante.
    Premendo il pulsante la Ball dovrebbe muoversi in orizzontale fino alla coordinata data da me:

    Sulla TimeLine nel primo frame ho:

    codice:
     	 	costante =	6;  
    	ball.velx=	0;
    	
    function	muovi	(qui)	{
    	var destinazione	=	qui;
    	
    	ball.onEnterFrame	=	function	()	{
    		
    	if	(ball._x	>	destinazione)	{
    	ball.velx = (ball.velx + (destinazione - ball._x))/costante; 
    	ball._x = ball._x+ball.velx; 
    	ball._x = ball._x; 
    	} else ball.onEnterFrame = undefined;
    	}
    }
    al pulsante ho dato il seguente codice:

    codice:
    on	(release)	{
    	ball.muovi("36");
    }
    di sicuro sbaglio in qualcosa... non sono un grande esperto.. questo codice l'ho tirato fuori leggendo qua e la, la sintassi delle funzioni. Spero qualcuno mi aiuti a correggerlo e sopratutto a capire!
    Grazie

  2. #2
    Ciao, prova a sostituire il codice con questo:
    //tutto sul primo frame

    //prendo la posizione in cui si trova all'inizio la palla
    InitX=ball._x
    InitY=ball._y
    //imposto la posizione finale
    DestX=500
    DestY=200

    velocita=3

    function Sposta(){
    ball.onEnterFrame=function(){
    X=_level0.DestX-this._x
    Y=_level0.DestY-this._y
    this._x+=X/velocita
    this._y+=Y/velocita
    trace(this._x + "/" + this._y)
    trace(X + "/" + Y)
    // dalla trace osserva il limite
    // inserisci un controllo
    // per il delete this.onEnterFrame

    }
    }
    btn1.onRelease = function() {
    Sposta()
    }

    esempio: QUI


    -Nextart.it Graphic Solutions

  3. #3
    Wow... grazie mille... è proprio quello di cui avevo bisogno... nel tuo codice parli di trace x il limite... in pratica cosa devo guardare?.... I valori del trace scorrono fino a che non arrivano alle coordinate che voglio io ... a quel punto?

    che faccio un if?

  4. #4
    function Sposta(){
    ball.onEnterFrame=function(){
    X=_level0.DestX-this._x
    Y=_level0.DestY-this._y
    this._x+=X/velocita
    this._y+=Y/velocita
    //da qui vedi la coordinata che raggiunge la palla
    trace(this._x + "/" + this._y)
    trace(X + "/" + Y)
    // dalla trace osserva il limite
    // inserisci un controllo
    // per il delete this.onEnterFrame
    //se la x della palla e' > di 499, deve arrivare a 500
    if (this._x >=499) {
    delete this.onEnterFrame
    }

    }
    }
    -Nextart.it Graphic Solutions

  5. #5
    bene, l'ho modificato x funzionare in generico è va alla grande e ci ho aggiunto una funzione x swappare la profondità. Grazie mille:

    codice:
    inizioM			=	left._x;
    inizioO			=	right._x;
    //trace(inizioM + " / " + inizioO);
    
    destinazione	=	325;
    velocita		=	5;
    profondita 		= 	2;
    
    function Scambia(mc) { 
    mc.swapDepths(profondita++); 
    } 
     
    function Sposta(mc)	{
    	mc.onEnterFrame	=	function()	{
    		X		=	destinazione-this._x;
    		this._x	+=	X/velocita;
    	if	(	this._x	==	destinazione	)	{
    		delete this.onEnterFrame;
    	}
    	}
    }

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.