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

    [AS2] rotazione con mouse

    salve ragazzi... mi trovo ad affrontare un problema che da ieri non riesco a risolvere..

    vorrei simulare il movimento di un disco da deejay che con la pressione del mouse sopra mi ruota a destra o sinistra in base a come sposto il mouse...

    il risultato che sono riuscito ad ottenere per adesso è il seguente

    risultato

    solo che se giocate un pochino con la rotela per un po di secondi muovendovi velecomente e cliccando più volte su di essa..
    inizia a ruotare senza controllo e dopo yun pò si blocca.

    ho reciclato una funzione as2 trovata per il web alla quale era associata anche il drag and drop in posizioni x e y cosa che a me non serve visto che la rotella che vedete deve solo ruotare e non spostarsi su cordinate x e y.

    poosto cmq il codice usato ma premetto che è un pò contorto da capire e sarei lieto di riscrivere la funzione perchè credo che si posssa ottenere lo stesso effetto con poche linee di codice.

    Sapete aiutarmi
    non so casomai utilizzando anche librerie esterne come la mc_tween o cosa simile per simulare il decelleramento al rilascio

    grazie in anticipo
    ecco il codice posizionato dentro mc objeto la rotella per intenderci
    Codice PHP:
    1;
    inercia 5000;
    inx _x;
    iny _y;

    _rotation;
    min 1;
    originx _x;
    originy _y;

    originr _rotation;
    //friccion
    1.2;
    //inicializando
    vr 0;
    torque 0;
    vx 0;
    vy 0;


    onEnterFrame = function () {
        if (
    modo == 1) {
            
            if (
    modo_time == 1) {
                
    modo_time 0;
                
    mxx _root._xmouse;
                
    my _root._ymouse;
                
    mx0 mxx;
                
    my0 my;
                
    dmx mxx-mx0;
                
    dmy my-my0;
            } else {
                
    mxx = (_root._xmouse+mxx)/2;
                
    my = (_root._ymouse+my)/2;
                
    dmx mxx-mx0;
                
    dmy my-my0;
                
    mx0 mxx;
                
    my0 my;
            }
            
    fx = (dmx-vx)*m;
            
    fy = (dmy-vy)*m;
            
    ldx mxx-inx;
            
    ldy my-iny;
            if (
    fx == 0) {
                
    mlength ldx;
                
    mforce fy;
                
    torque mforce*mlength;
            } else if (
    fy == 0) {
                
    mlength ldy;
                
    mforce fx;
                
    torque = -(mforce)*mlength;
            } else {
                
    fy/fx;
                
    kx = (-(k)*k*ldx+k*ldy)/(-(k)*k-1);
                
    ky k*(kx-ldx)+ldy;
                
    mlength Math.sqrt(kx*kx+ky*ky);
                
    mforce Math.sqrt(fx*fx+fy*fy);
                if (
    fx*ky>0) {
                    
    torque = -(mforce)*mlength;
                } else {
                    
    torque mforce*mlength;
                }
            }
            
            
    vx dmx;
            
    vy dmy;
            
    inx += vx;
            
    iny += vy;
            
    vr vr-torque/inercia;
            
    ldx mxx-inx;
            
    ldy my-iny;
            var 
    cos;
            var 
    sin;
            
    cos Math.cos(vr/180*Math.PI);
            
    sin Math.sin(vr/180*Math.PI);
            
    addx ldx*cos+ldy*sin-ldx;
            
    addy = -(ldx)*sin+ldy*cos-ldy;
            
    inx += -(addx);
            
    iny += -(addy);
        } else if (
    modo == 2) {
            if (
    modo_time == 1) {
                
    modo_time 0;
                
    vx vx-(addx);
                
    vy vy-(addy);
            }
            
    torque 0;
            
    addx 0;
            
    addy 0;
            
    inx += vx;
            
    iny += vy;
        }
        
    -= vr;
        
    //this._x = inx;  eliminate perchè non mi servivano
        //this._y = iny;
        
    this._rotation r;
        
    vx vx/b;
        
    vy vy/b;
        
    vr vr/b;
    };
    stop(); 

  2. #2
    ragazzi nessuno sa dirmi come ruotare un oggetto con il mouse...? vi prego ancora non risolvo

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.