Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414

    rotazioni perchè non vanno oltre180°?

    salve volevo sapere se è possibile evitare che un oggetto ruotato di 180°+1 non assuma come rotazione -179° ma 181°
    non capisco come mai flash ha qst metodo.

    il problema è che ho un movieclip che viene ruotato automaticamente di tot gradi ogni tot secondi, ma non appena vengono superati i 180°, comincia a dare i numeri, penso che il problema sia legato a qst impostazioni di flash, ma si possono cambiare?

    ogni tot sec qst azione viene eseguita:

    Codice PHP:
    _root.xpos1+=15;
    _root.control2.gotoAndPlay(2); 
    in pratica si definisce la nuova rotazione del mc e si rimanda ad un altro movieclip di control che esegue l'animazione in 3 frame:

    1°frame imposto le variabili:
    Codice PHP:
    stop();
    accelerazione 1,5;
    inerzia 2;
    velocy1 0
    2° frame creo il movimento:
    Codice PHP:
    velocy1 = (velocy1+(_root.xpos1-_root.mc._rotation)/accelerazione)/inerzia;
    _root.mc._rotation+= velocy1
    3°frame ritorno al 2°frame fino a qnd la posizione definita non viene raggiunta:
    Codice PHP:
    gotoAndPlay(2); 
    spero che qualcuno mi possa aiutare
    nel frattempo ringrazio anticipatamente

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    La rotazione in flash assume valori positivi e negativi nei range da 0 a 180 per la rotazione oraria e da 0 a -180 per quella antioraria. I valori che sforano questi intervalli vengono sommati o sottratti a 360 per ottenere valori nei range
    nel tuo caso evidentemente la funzione che definisce velocy1 crea problemi
    se usi flash 7 o 8 ti converrebbe passare alla classe Tween per queste animazioni

  3. #3
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    se non ho capito male,mi stai consigliando di crare qst animazioni tramite interpolazioni piuttosto che action script?

    io sto cercando di utilizzare l'AS perchè quello che voglio animare non è altro che una lista dinamica creata cn dati presi dal DataBase, quindi sto cercando di parametrizzare tutti i valori in modo da poter gestire l'animazione del menuanche se il numero dei dati dovesse cambiare...

    ho provato a mettere condizioni tipo

    se la rotazione è <= di 180 allora moltiplica il valore x -1 così da positivo passa a negativo...

    a proposito esiste un modo per dire : il valore è compreso tra 0 e 180?piuttosto che creare 2 condizioni?

    cmq grazie come al solito 6 sempre disponibile

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    no, ti sto dicendo che per le versioni di flash player dalla 7 in poi esiste una classe che in una sola riga richiama un'animazione, la classe Tween appunto, che dispone di funzioni che simulano movimenti di tipo elastico, rallentato ecc... e rendono nettamente più semplice la gestione delle animazioni via actionscript

    un esempio per la rotazione:

    import mx.transitions.*;
    import mx.transitions.easing.*;
    var myTween = new Tween(mioClip, "_rotation", Elastic.easeOut, 0, 360, 1, true);

    approfondimenti: http://www.v2online.it/articoli/easing-functions.html
    (ho anche un altro link di riferimento, ma non in questo pc, lo posto dopo)

  5. #5
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    mooolto interessante
    grazie 1000

    così mi stai dicendo che utilizzando qst metodo dovrei risolvere il problema dei gradi di rotazione?!

    cmq devo sperimentarlo con + calma, ti aggiornerò sui risultati

    in ogni caso se puoi, inseriscilo cmq l'altro link, non si sa mai!

    grazie ancora

  6. #6
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    cmq ho provato a modificare lo script in modo da completare un giro completo, ma anche qui dopo i 180 comincia a dare i numeri
    Codice PHP:
    var ___TWEEN___:Tween = new Tween(_root.___MC___"_rotation"Elastic.easeOut
    _root.___MC___._rotation_root.___MC___._rotation+=2510false); 

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ma no, nel parametro di arrivo devi inserire il valora a cui vuoi arrivare, non un incrementale in quel modo

    Codice PHP:
    var ___TWEEN___:Tween = new Tween(_root.___MC___"_rotation"Elastic.easeOut036010true); 

  8. #8
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    ho fatto così perchè qst è un azione che viene ripetuta ogni tot frame
    il risultato finale deve essere una specie di orologio che avanza ogni volta, per qst ho pensato di parametrizzare l'arrivo definendolo come il risultato della somma tra l'ultima rotazione incrementata di (in qst caso) 25 gradi...

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ma il passaggio da un frame all'altro è vincolato al termine dell'animazione?

  10. #10
    Utente di HTML.it L'avatar di mud
    Registrato dal
    Jun 2004
    Messaggi
    414
    guarda non vorrei farti perdere troppo tempo, forse la cosa migliore è dare un occhiata al file senza impegno, è abbastanza semplice non penso che tu abbia bisognio di spiegazioni, lo trovi a qst link:

    link

    a presto

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.