Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363

    Migliorare pulsanti di movimento

    Ciao! Sto realizzando un'interfaccia che permetta di muovere delle istanze di oggetti sullo stage. Ora uso un codice come questo, che sposta l'istanza verso il basso:
    codice:
    on (press) {
    	_Level5.istColore1._y = _Level5.istColore1._y +1;
    }
    In questo modo però, sono costretto a cliccare a ripetizione per far fare grandi movimenti all'istanza.
    Come devo fare per far si che il movimento sia continuo tenendo premuto il pulsante? Grazie!

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    on(press){
    	// modifica il valore di spostamento per variare la velocità
    	var spostamento = 5;
    	_level5.istColore1.onEnterFrame = function()
    	{
    		this._y += spostamento;
    	}
    }
    on(release, releaseOutside){
    	delete _level5.istColore1.onEnterFrame;
    }

  3. #3
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Uhm.. grazie. Ma non funziona
    Non si muove né cliccando, nè tenendo premuto...

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Scusa, ma _Level5 è il nome di istanza di un movieclip?

  5. #5
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Ops Scusa, errore mio: nel frattempo avevo strutturato in modo diverso gli oggetti.
    _level5 è un MC caricato con loadMovieNum, che ora contiene l'istanza istGrafica, che contiene l'istanza istColore1.

    Ho modificato di conseguenza e ora il tuo codice funziona perfettamente. Grazie mille!

    Posso approfittare di chiederti qual'è la logica del codice che mi hai postato? Vorrei capire quello che ho fatto e non solo risolvere un problema contingente.

    Non capisco bene il funzionamento di .onEnterFrame (metodo o proprietà?) e di delete.

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    In poche parole: l'enterFrame è un evento a cui sono soggetti tutti i movieclip, e viene scatenato ogni volta che il filmato viene ridisegnato (quindi alla velocità del frame rate). l'onEnterFrame è un gestore di questo evento, a dire che associandogli una funzione, questa viene eseguita ogni volta che l'enterFrame è invocato. Ogni movieclip può avere il gestore di evento, che si utilizza come una comune proprietà.

    codice:
    /* alla pressione del tasto sinistro del mouse sul pulsante */
    on(press){
    	/* viene definita la variabile locale "spostamento", con il valore numerico 5 */
    	var spostamento = 5;
    	/*
    	con la sintassi del punto, viene identificato il movieclip, e viene
    	definito il gestore di evento onEnterFrame, come se fosse una proprietà:
    
    		movieclip.proprietà = valore
    
    	il contenuto di questo gestore è il riferimento ad una funzione definita
    	dall'utente, che viene invocata ad ogni enterFrame
    	*/
    	_level5.istColore1.onEnterFrame = function()
    	{
    		/*
    		lo scope della funzione (l'ambito) è il movieclip stesso, quindi
    		quando si scrive this si intende il movieclip del quale si è definito
    		il gestore, in questo caso istColore1
    		il comando in questo caso è "aumenta il valore della proprietà _y
    		del valore contenuto nella variabile spostamento. infatti scrivere
    
    		this._y += spostamento;
    
    		è come scrivere
    
    		this._y = this._y + spostamento;
    		*/
    		this._y += spostamento;
    	}
    }
    /* al rilascio del tasto sinistro, sopra o fuori dal pulsante */
    on(release, releaseOutside){
    	/*
    	viene cancellato il valore del gestore onEnterFrame: in questo modo,
    	allo scoccare dell'evento enterFrame non viene chiamato alcun gestore,
    	e la funzione precedentemente contenuta in esso viene rimossa dalla memoria
    	*/
    	delete _level5.istColore1.onEnterFrame;
    }

  7. #7
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    VVoVe:
    Wow, anche troppo
    Sei stato chiarissimo, penso di avere capito tutto. Soprattutto la spiegazione di onEnterFrame e Delete, molto utili, grazie mille!

  8. #8

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.