Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Rotazione con Frizione

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    311

    Rotazione con Frizione

    Salve!
    Sto facendo ruotare un clip tramite il seguente codice:

    function rotazione(){
    this._rotation += 10;
    }
    puls.onRollOver = function(){
    cerchio.onEnterFrame = rotazione;
    }
    puls.onRollOut = function(){
    delete cerchio.onEnterFrame;
    }

    Tutto funziona correttamente ma l'attacco ed il finale del movimento sono "secchi" io vorrei far si che il movimento di rotazione inizi e finisca con velocità crescente e decrescente.
    Come posso fare?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non ho provato, ma forse una cosa del genere

    Codice PHP:
    var rota 0;
    function 
    avvia_rotazione(){
        if(
    rota 10){
            
    rota++;
            
    this._rotation += 10;
        } else {
            
    this._rotation += 10;
        }
    }
    function 
    ferma_rotazione(){
        if(
    rota 0){
            
    rota--;
        } else {
            
    delete cerchio.onEnterFrame;
        }
    }
    puls.onRollOver = function(){
        
    cerchio.onEnterFrame avvia_rotazione;
    }
    puls.onRollOut = function(){
        
    cerchio.onEnterFrame ferma_rotazione;


  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    311
    Grazie mille and80 per la risposta ma purtroppo non funziona, o meglio, si blocca e riparte come prima ma senz effetto "frizione".

  4. #4
    e se utilizzi il sistema (non l'ho testato) quel 5 può essere magg o minore in base alla vel che vuoi // non meno di 2


    Codice PHP:
    function avvia(N){
      
    cerchio.REF += N
      cerchio
    .onEnterFrame=function(){
           
    oldR newR
           newR 
    this.REF this._rotation
           this
    ._rotation += newR/5
           
    if(newR == oldR){
                    
    delete this.onEnterFrame
           
    }
       }
    }

    puls.onPress=function(){
           
    avvia(10)


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    311
    e se utilizzi il sistema (non l'ho testato) quel 5 può essere magg o minore in base alla vel che vuoi
    Niente da fare... Non funziona. Questa volta non parte neppure

  6. #6

    Re: Rotazione con Frizione

    Originariamente inviato da bluecolors
    Salve!
    Sto facendo ruotare un clip tramite il seguente codice:

    function rotazione(){
    this._rotation += 10;
    }
    puls.onRollOver = function(){
    cerchio.onEnterFrame = rotazione;
    }
    puls.onRollOut = function(){
    delete cerchio.onEnterFrame;
    }

    Tutto funziona correttamente ma l'attacco ed il finale del movimento sono "secchi" io vorrei far si che il movimento di rotazione inizi e finisca con velocità crescente e decrescente.
    Come posso fare?
    Grazie
    hai provato invece con le tween?

    cioè quando stai sopra al puls il cerchio deve ruotare e quando esci dal pls il cerchio deve stare fermo dovè o ritornare al suo punto di partenza?
    se è cosi
    una cosa al volo
    sul frame
    MovieClip.prototype.rotateThis = function (newX) {
    var tx = new mx.transitions.Tween(this, "_rotation", mx.transitions.easing.Regular.easeOut, 0, newX, 1, true);
    }
    MovieClip.prototype.sistemaThis = function (newX) {
    var tx = new mx.transitions.Tween(this, "_rotation", mx.transitions.easing.Regular.easeOut, this._rotation, -newX, 1, true);
    }

    supponiamo che il cerchio sia istanziato prova

    poi sul pls (se è un pls)
    on(rollOver){
    //supponiamo di voler far girare il cerchio di 90 gradi
    a=90
    prova.rotateThis(a);
    }
    on(rollOut){
    a=0
    prova.sistemaThis(a);
    }

    altrimenti se è un clip scrivi la fuunzione sul frame con le stesse azioni
    xrò nn l'ho provato
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  7. #7
    o non ho capito COSA DEVI FARE ...ma a me funziona mancava solo la prima definizione
    Codice PHP:
    cerchio.REF=0
    function avvia(N){
        if(
    cerchio.REF<180){cerchio.REF += N}else{cerchio.REF=0}
     
      
    cerchio.onEnterFrame=function(){
           
    oldR newR
           newR 
    this.REF this._rotation
           this
    ._rotation += newR/5
           
    if(newR == oldR){
                    
    delete this.onEnterFrame
           
    }
       }
    }

    puls.onPress=function(){
           
    avvia(20);


  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    c'era qualche errore nel codice che avevo proposto

    Codice PHP:
    var rota 0;
    var 
    limi 50;
    function 
    avvia_rotazione() {
        if (
    rota<limi) {
            
    rota++;
            
    cerchio._rotation += rota;
        } else {
            
    cerchio._rotation += limi;
        }
    }
    function 
    ferma_rotazione() {
        if (
    rota>0) {
            
    rota--;
            
    cerchio._rotation += rota;
        } else {
            
    delete cerchio.onEnterFrame;
        }
    }
    puls.onRollOver = function() {
        
    cerchio.onEnterFrame avvia_rotazione;
    };
    puls.onRollOut = function() {
        
    cerchio.onEnterFrame ferma_rotazione;
    }; 

  9. #9
    Perfetto AND...non avevo capito cosa voleva..

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    311
    Grazie mille ragazzi!!!
    Siete stati assoltamente esaustivi e precisi.
    and80 il codice è perfetto! ed il funzionamento ora mi è chiarissimo.
    Grazie ancora.

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.