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

    action script invece di interpolazione

    Ciao a tutti!
    vorrei sapere se esiste qualche action script che possa sostituire l'interpolazione movimento o forma! riesco a modificare un oggetto agendo sulle coordinate o sulle misure, ma se voglio dargli l'effetto di interpolazione...come si fa??

    grazie in anticipo!...spero che qualcuno mi risponda!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    72
    per creare qualcosa di fluido ti consiglio un onEnterFrame, e cambi ogni fotogramma (di poco perchè i fotogrammi sono veloci!) le coordinate (per farlo spostare) oppure la xscale e la Yscale (per ingrandirlo, rimpicciolirlo, ecc).
    naturalmente ci devi mettere anche un controllo che alla fine ti termina l'enterframe (ad esempio aumenti ogni frame la _x e fermi tutto quando è arrivata ad un certo valore che volevi te)
    francesco

  3. #3
    ciao plexott!
    grazie per la tua risposta e scusa per la mia in ritardo (periodo di feste...anzi: auguri passati)
    quindi, se non ho capito male, dovrei usare cmq una quantità di fotogrammi uguale a quella che avrei usato con l'interpolazione, solo che in ognuno aumento i parametri...giusto?
    ma c'è un'incidnza a livello di peso del file swf in questo modo?
    non si riuscirebbe a fare tutto in un unico fotogramma?magari creando un ciclo con una "if"?

  4. #4
    No in realtà si diceva proprio di usare un unico frame contenente un'azione "onEnterFrame" che gestirà tutta la tua animazione dinamica.
    Se per esempio vuoi muovere sull'asse X un clip di una palla (quindi spostare da sinistra verso destra semplicemente), dopo aver creato suddetta clip e istanziata come "palla_mc" prova a mettere sul primo fotogramma sto codice:

    codice:
    palla_mc.onEnterFrame = function() {
    	if (this._x<400) {
    		this._x += 10;
    	} else {
    		delete this.onEnterFrame;
    	}
    };
    Una volta esportato il filmato vedrai che la palla si muoverà verso destra fino a raggiungere la posizione x di 400 ... esattamente come se avessi fatto una motion tween.
    Chiaramente se al posto di 10 ci metti 5, il tempo impiegato dalla palla per raggiungere il punto finale sarà maggiore.

  5. #5
    grazie ancora per l'aiuto!!
    in questo modo dovrei ridurre il peso del file sfw vero? (rispetto ad un'interpolazione)
    visto che hai nominato la classe tween, non posso usarla se uso as2 giusto?

  6. #6
    ...ho provato il codice modificandolo per le mie esigtenze:

    codice:
    codice:
    puls_ita.onRollOver = function () {
    	if (mc_ita._alpha<100) {
    		mc_ita._alpha += 10;
    	}
    };
    puls_ita.onRollOut = function () {
    	if (mc_ita._alpha > 0) {
    		mc_ita._alpha -= 10;
    	}
    };
    in pratica voglio che al passaggio del mouse su un pulsante, l'alfa del mc vada da 0 a 100;
    all'uscita invece, il contrario!
    con il codice mio invece si limita ad aumentare di 10 l'alfa al passaggio e di togliere 10 all'uscita del mouse! capisco che il mio codice non entra in un ciclo che fa arrivare a 100 l'alfa, ma...come faccio??
    poi, c'è qualche proprietà che mi fa cambiare la tinta ivece dell'alfa??

  7. #7
    parere mio: lascia perdere gli enterframe e usa la classe Tween che ti permette di creare interpolazione via codice su _x, _y,_alpha e _rotation.

  8. #8
    parere mio: lascia perdere gli enterframe e usa la classe Tween che ti permette di creare interpolazione via codice su _x, _y,_alpha e _rotation.
    ...e così ho fatto!!...infatti risultato perfetto! in pratica volevo fare uno di quei classici menù in cui al passaggio del mouse, il testo cambia colore sfumando! quindi ho messo un testo base sotto, un pulsante trasparente e un clip (anch'esso trasparente) sovrapposti al testo.
    Al passaggio del mouse sul pulsante, l'alpha del clip va da 0 a 100 coprendo il testo iniziale...così è come cambiare colore!

    ecco il codice usato alla fine:

    codice:
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    puls_ita.onRollOver =function () {
    new Tween(mc_ita, "_alpha", Regular.easeIn, 0, 100, 5, false);
    }
    puls_ita.onRollOut =function () {
    new Tween(mc_ita, "_alpha", Regular.easeIn, 100, 0, 5, false);
    }
    ...dovrebbe essere la soluzione migliore...o con la classe tween si può agire anche sulla tinta e quindi evitare lo stratagemma del testo sotto?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.