Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    37

    AS3: Gestione click su mc

    Buona sera a tutti,

    vorrei che al 1° click, il mio MC assuma delle nuove dimensioni.
    Al 2° click vorrei che il mio MC ritorni alle dimensioni iniziali.
    Ho realizzato il seguente codice AS che fornisce le nuove dimensioni al MC:

    import fl.transitions.*;
    import fl.transitions.easing.*;


    test.addEventListener(MouseEvent.CLICK,avviaGianfr anco);

    var startValue:Number = test.width;
    var finishValue:Number = 400;
    var duration:Number = 3;
    var myTween:Tween = new Tween(test, "width", Elastic.easeIn, startValue, finishValue, duration, true);
    myTween.stop();

    var startValue2:Number = test.height;
    var finishValue2:Number = 400;
    var duration2:Number = 3;
    var myTween2:Tween = new Tween(test, "height", Elastic.easeIn, startValue2, finishValue2, duration2, true);
    myTween2.stop();

    function avviaGianfranco(e:MouseEvent):void {
    myTween.start();
    myTween2.start();
    test.removeEventListener(MouseEvent.CLICK, avviaGianfranco);
    }
    A questo punto vorrei farlo ritornare alle dimensioni di origine, come posso fare?

    Rigrazio anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Io farei così:

    Codice PHP:
    import fl.transitions.*;
    import fl.transitions.easing.*;
    var 
    a:Array = [];
    function 
    scale (m:DisplayObjectw:Numberh:Numberd:Number) {
        
    a[0] = new Tween (m"width"Elastic.easeInm.widthwdtrue);
        
    a[1] = new Tween (m"height"Elastic.easeInm.heighthdtrue);
    }
    function 
    increase (e:MouseEvent) {
        
    test.removeEventListener(MouseEvent.CLICKincrease);
        
    test.addEventListener(MouseEvent.CLICKreduce);
        
    scale (test4004003);
    }
    function 
    reduce (e:MouseEvent) {
        
    test.removeEventListener(MouseEvent.CLICKreduce);
        
    test.addEventListener(MouseEvent.CLICKincrease);
        
    scale (test3003003);
    }
    test.addEventListener(MouseEvent.CLICKincrease); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    37
    Grazie mille And80.
    Ho provato e funziona perfettamente.

    Saluti

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    37

    Gestione tempo su MC

    Buonasera a tutti,

    Ho realizzato il seguente codice perfettamente funzionante.
    Al primo click viene eseguito un effetto elastic.easein su MC this.mc_galleria.mc_gianfranco ed un effetto alpha su tutti gli altri, mentre al secondo click,vorrei che venga eseguito prima l'effetto elastic.easein e dopo un certo tempo l'effetto alpha.
    Come posso fare?

    import fl.transitions.*;
    import fl.transitions.easing.*;
    import flash.events.TimerEvent;
    import flash.utils.Timer;

    var a:Array = [];
    function scale (misplayObject, w:Number, h:Number, d:Number) {
    a[0] = new Tween (m, "width", Elastic.easeIn, m.width, w, d, true);
    a[1] = new Tween (m, "height", Elastic.easeIn, m.height, h, d, true);
    }
    function increase (e:MouseEvent) {
    this.mc_galleria.mc_gianfranco.removeEventListener (MouseEvent.CLICK, increase);
    this.mc_galleria.mc_gianfranco.addEventListener(Mo useEvent.CLICK, reduce);
    scale (this.mc_galleria.mc_gianfranco, 356, 356, 3);
    this.mc_galleria.mc_franco.alpha=0
    this.mc_galleria.mc_gianni.alpha=0
    this.mc_galleria.mc_herry.alpha=0
    this.mc_galleria.mc_massimo.alpha=0
    this.mc_galleria.mc_michele.alpha=0
    this.mc_galleria.mc_vitod.alpha=0
    this.mc_galleria.mc_vitop.alpha=0

    }
    function reduce (e:MouseEvent) {
    this.mc_galleria.mc_gianfranco.removeEventListener (MouseEvent.CLICK, reduce);
    this.mc_galleria.mc_gianfranco.addEventListener(Mo useEvent.CLICK, increase);
    scale (this.mc_galleria.mc_gianfranco, 178, 178, 3);
    }




    this.mc_galleria.mc_gianfranco.addEventListener(Mo useEvent.CLICK, increase);

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Per farlo dovresti usare un Timer, ma penso che questa scelta ti incarterebbe non poco la situazione, considerato che tu puoi cliccare più volte sulla stessa immagine, otterresti una sovrapposizione di Timer che tentano di portare l'alpha a 1 e comandi che vogliono portarla a 0. Penso che si creerebbe un pasticcio non da poco.

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    comunque funzionerebbe così:

    Codice PHP:
    import fl.transitions.*;
    import fl.transitions.easing.*;
    import flash.events.TimerEvent;
    import flash.utils.Timer;

    var 
    t:Timer = new Timer(1000,1);
    t.addEventListener(TimerEvent.TIMERcomplete);
    var 
    a:Array = [];

    function 
    scale (m:DisplayObjectw:Numberh:Numberd:Number) {
        
    a[0] = new Tween (m"width"Elastic.easeInm.widthwdtrue);
        
    a[1] = new Tween (m"height"Elastic.easeInm.heighthdtrue);
    }

    function 
    increase (e:MouseEvent) {
        
    c1.removeEventListener(MouseEvent.CLICKincrease);
        
    c1.addEventListener(MouseEvent.CLICKreduce);
        
    scale (c1200703);
        
    c2.alpha 0
    }

    function 
    reduce (e:MouseEvent) {
        
    c1.removeEventListener(MouseEvent.CLICKreduce);
        
    c1.addEventListener(MouseEvent.CLICKincrease);
        
    scale (c1120703);
        
    t.start();
    }

    function 
    complete (e:TimerEvent) {
        
    a[2] = new Tween (c2"alpha"nullc2.alpha11true);
    }

    c1.addEventListener(MouseEvent.CLICKincrease); 
    Ho sostituito il clip con uno che ho chiamato "c1" e al posto della serie di clip che vanno ad alpha=0 ne ho messo solo uno di nome "c2", il concetto comunque non cambia con il tuo codice, nella funzione complete basta che aggiungi tutti gli indici di array che ti servono.

    Codice PHP:
    function complete (e:TimerEvent) {
        
    a[2] = new Tween (this.mc_galleria.mc_franco.alpha"alpha"nullthis.mc_galleria.mc_franco.alpha11true);
        
    a[3] = new Tween (this.mc_galleria.mc_gianni.alpha"alpha"nullthis.mc_galleria.mc_gianni.alpha11true);
        
    a[4] = new Tween (this.mc_galleria.mc_herry.alpha"alpha"null,this.mc_galleria.mc_herry.alpha11true);
        
    a[5] = new Tween (this.mc_galleria.mc_massimo.alpha"alpha"nullthis.mc_galleria.mc_massimo.alpha11true);
        
    a[6] = new Tween (this.mc_galleria.mc_michele.alpha"alpha"nullthis.mc_galleria.mc_michele.alpha11true);
        
    a[7] = new Tween (this.mc_galleria.mc_vitod.alpha"alpha"nullthis.mc_galleria.mc_vitod.alpha11true);
        
    a[8] = new Tween (this.mc_galleria.mc_vitop.alpha"alpha"nullthis.mc_galleria.mc_vitop.alpha11true);


  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    37
    Ciao and80

    l'output mi restituisce il seguente errore:

    ReferenceError: Error #1056: Impossibile creare la proprietà alpha su Number.

    Saluti

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il forum ha cambiato parte del codice, ho editato il messaggio, ora dovresti vederlo correttamente

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    37
    Grazie mille and80,

    ho risolto approtando la seguente modifica:

    a[2] = new Tween (this.mc_galleria.mc_franco, "alpha", null, this.mc_galleria.mc_franco.alpha, 1, 1, true);

    Saluti

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.