Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    97

    AS3: Far crescere un oggetto in mouseOver e farlo rimpicciolire in MouseOut

    Ho creato queste due funzioni per un MOUSE_OVER e un MOUSE_OUT per far crescere i mC che compongono un menù quando ci vado sopra e farli rimpicciolire quando tolgo la mouse.
    Purtroppo non funziona... ovvero il mC cresce di .03 e basta ogni volta che lo tocco e la stessa cosa sul mouseOut... dove sbaglio?

    //lo faccio crescere
    function immaginiOver(e:MouseEvent){
    if (pulsanteImmagini.width < 370.5){
    pulsanteImmagini.scaleX += .03;
    pulsanteImmagini.scaleY += .03;
    }else{
    pulsanteImmagini.removeEventListener(MouseEvent.MO USE_OVER, immaginiOver)
    pulsanteImmagini.addEventListener(MouseEvent.MOUSE _OUT, immaginiOut)
    trace("sono pronto a scendere")
    }
    }

    //lo faccio rimpicciolire
    function immaginiOut(e:MouseEvent){
    if (pulsanteImmagini.width > 264.4){
    pulsanteImmagini.scaleX -= .03;
    pulsanteImmagini.scaleY -= .03;
    }else{
    pulsanteImmagini.removeEventListener(MouseEvent.MO USE_OUT, immaginiOut)
    pulsanteImmagini.addEventListener(MouseEvent.MOUSE _OVER, immaginiOver)
    trace("sono pronto a salire")
    }
    }

    //avvio il ciclo
    pulsanteImmagini.addEventListener(MouseEvent.MOUSE _OVER, immaginiOver)

    HELP!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per gestire un evento che modifica le proprietà del clip nel tempo, devi affidarti ad una funzione che ripete ciclicamente le azioni
    tale evento era fino a flash mx affidato quasi esclusivamente all'enterFrame, ma da flash mx 2004 è stata introdotta la classe Tween che consente di gestire queste modifiche in una sola riga di codice
    sulla classe c'è parecchia documentazione in giro per il web, comunque in generale e per il tuo caso funziona in questo modo

    Codice PHP:
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    function 
    scaleClip(t:DisplayObjectw:Numberh:Number):Tween {
        var 
    tw:Tween = new Tween(t"width"None.easeNonet.widthw1true);
        var 
    th:Tween = new Tween(t"height"None.easeNonet.heighth1true);
        return 
    th;
    }

    pulsanteImmagini.addEventListener(MouseEvent.MOUSE_OVERmouseHandler);
    pulsanteImmagini.addEventListener(MouseEvent.MOUSE_OUTmouseHandler);

    function 
    mouseHandler(e:MouseEvent){
        if(
    e.type == "mouseOver") {
            var 
    w:Number 370.5;
        } else if(
    e.type == "mouseOut") {
            var 
    w:Number 264.4;
        }
        var 
    h:Number = (e.target.height*w)/e.target.width;
        
    scaleClip(e.targetwh);


  3. #3
    mi potresti per favore spiegare 1 cosa:

    var h:Number = (e.target.height*w)/e.target.width;
    scaleClip(e.target, w, h);
    il parametro target è l'oggetto a cui si riferisce la chiamata dell'evento e nella funzione mouseHandler, è corretto?

    quindi in questo caso pulsanteImmagini. giusto?

    grazie.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    esattamente, quando inizializzi la funzione da passare all'addEventListener gli devi inserire un parametro di tipo Event o Error, o una loro sottoclasse, come appunto MouseEvent
    tali classi contengono una variabile target che all'interno della funzione corrispondono all'oggetto a cui si è allegata la funzione

    un semplice esempio:

    Codice PHP:
    // my_button è un clip sullo stage
    my_button.addEventListener(MouseEvent.CLICKtracciaTarget);
    function 
    tracciaTarget(event:MouseEvent){
    trace(event.target); // output: "my_button"


  5. #5
    grazie.

    non ho ancora fatto niente in as3, quindi non sapevo. mi sa che è ora di iniziare....


  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    se ti può interessare, ho scritto qualche articolo sulle cosette principali di AS3 nel mio sito di articoli di cui trovi link in firma

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    97
    Grazie mille and80. lo proverò e ti diro! Sicuramete avrò bisogno di ulteriori chiarimenti

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.