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

    [AS3]Effetto ingrandimento

    Salve a tutti, sto scrivendo questo post come ultima spiaggia dopo numerosi e vani tentativi e ricerche. Sto cercando di creare un effetto su una MC con il quale all'evento MOUSE_OVER questa MC si ingrandisce gradualmente.
    Mi spiego meglio. Passando con il mouse sopra a questa MC (un semplice quadrato) questo si dovrebbe ridimensionare. Ho provato il metodo scale dell'oggetto matrix e funziona, soltanto che a me occorre che l'ingrandimento deve avvenire gradatamente con un effetto animazione.
    Spero di essermi spiegato bene.
    Ciao a tutto il forum!!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Per una cosa semplice puoi utilizzare la classe Tween.

    Codice PHP:
    import fl.transitions.Tween;
    oggetto_da_ingrandire.addEventListener(MouseEvent.ROLL_OVERroll);
    oggetto_da_ingrandire.addEventListener(MouseEvent.ROLL_OUTroll);
    function 
    roll (e:MouseEvent) {
        if (
    e.type == MouseEvent.ROLL_OVER) {
            var 
    ingrandisciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX1.51true)
            var 
    ingrandisciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY1.51true)
        } else {
            var 
    riduciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX11true)
            var 
    riduciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY11true)
        }


  3. #3
    Grazie!! In pratica cercavo nei posti sbagliati...non ho pensato di utilizzare la classe Tween.

  4. #4
    Ho ancora qualche problemino..... :master:
    In pratica io ho creato una griglia composta da 16 quadrati (4x4). Soltanto che quando passo con il mouse sopra un quadrato, questo non si trova in primo piano, ossia viene sopra al quadrato precedente (quello di sinistra) ma si trova sotto a quello successivo (quello di destra). Come faccio a dirgli al quadrato a cui applico l'effetto scale di venire in primo piano rispetto a tutti gli altri??
    Dimenticavo un'altra cosa: questi quadrati hanno la dimensione 50x50 ed all'interno della MC ho messo un'immagine di dimensioni 100x100(che è la dimensione effettiva a cui arriva il quadrato quando viene ingrandito). L'immagine l'ho ridimensionata a 50x50 per farla stare tutta dentro il quadrato, però quando questo si ingrandisce, l'immagine si sfoca anche se in realtà ha una dimensione 100x100.
    Come mai?

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Devi aggiungere uno swapChildrenAt nella funzione, dovrebbe andare in questo modo:

    Codice PHP:
    import fl.transitions.Tween;
    oggetto1.addEventListener(MouseEvent.ROLL_OVERroll);
    oggetto1.addEventListener(MouseEvent.ROLL_OUTroll);
    oggetto2.addEventListener(MouseEvent.ROLL_OVERroll);
    oggetto2.addEventListener(MouseEvent.ROLL_OUTroll);
    function 
    roll (e:MouseEvent) {
        if (
    e.type == MouseEvent.ROLL_OVER) {
            
    this.swapChildrenAt(this.getChildIndex(e.target), this.numChildren-1);
            var 
    ingrandisciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX1.51true)
            var 
    ingrandisciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY1.51true)
        } else {
            var 
    riduciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX11true)
            var 
    riduciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY11true)
        }


  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ho fatto un test e c'è un piccolo errore sulla funzione getChildIndex. Così funziona:

    Codice PHP:
    import fl.transitions.Tween;
    function 
    roll (e:MouseEvent) {
        if (
    e.type == MouseEvent.ROLL_OVER) {
            
    this.swapChildrenAt(this.getChildIndex(e.target as DisplayObject), this.numChildren-1);
            var 
    ingrandisciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX1.51true)
            var 
    ingrandisciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY1.51true)
        } else {
            var 
    riduciX:Tween = new Tween (e.target"scaleX"nulle.target.scaleX11true)
            var 
    riduciY:Tween = new Tween (e.target"scaleY"nulle.target.scaleY11true)
        }

    Ho postato solo la funzione, il resto rimarrebbe uguale.

  7. #7
    Così non va...ho provato in questo modo e pare che vada bene:
    codice:
    e.target.parent.swapChildren(e.target, e.target.parent.getChildAt(e.target.parent.numChildren-1));
    Ciao e grazie!

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.