Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Tween class in movimento disattivare btn

    ehi gente! sono bloccato!

    ho un movieclip che faccio muovere a dx e sx con la tastiera (frec. dx e frec. sx) di 100px ogni volta che si preme una freccia dx o sx. e fino a qua ok. ho usato questa tween per il movimento:

    codice:
    function goright() {
    	var allx = all_mc._x;
    	var xPos:Tween = new Tween(all_mc, "_x", mx.transitions.easing.Strong.easeOut, allx, allx-100, 0.5, true);
    }
    richiamata all press delle frecce direzionali:

    codice:
    var myListener:Object = new Object();
    myListener.onKeyDown = function() {
     
    	if (Key.getCode() == Key.LEFT) {
    		goleft();
        }
    
    	if (Key.getCode() == Key.RIGHT) {
    		goright();
        }

    Il problema è che se si schiaccia subito un freccia mentre il mc è in movimento la tween aggiunge 100 px all'attuale coordinata e mi sfasa tutta l'animazione.
    In pratica dovrei disattivare Key.LEFT e Key.RIGHT mentre la mc è in movimento.....qualche idea? spero di essere stato chiaro....

  2. #2
    beh potresti disattivare il pls fino a quando non è stata completata la tween
    con onmotiofinished puoi vedere quando la tween è finita



    ps
    qua l'ho usato
    http://forum.html.it/forum/showthrea...readid=1230386
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    si avevo già letto proprio un tuo thread dove spiegavi la funzione onmotiofinished, ma non riesco ad applicarla, non so se sbaglio nel disattivare il pls o applicare l' onmotiofinished alla tween..

  4. #4
    beh una cosa del genere

    function goright() {
    //qui disattivi il pls
    istanzapulsante.enabled=false;
    var allx = all_mc._x;

    var ___TWEEN___:Tween = new Tween(all_mc, "_x", Regular.easeIn, all_mc._x,all_mc-100, 0.5, false);

    var tweenListener:Object = new Object();
    //
    tweenListener.onMotionFinished = function():Void {
    trace("finito");
    //qui lo riattivi
    istanzapulsante.enabled=true;

    };
    ___TWEEN___.addListener(tweenListener);
    }

    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    nada! cosi non si muove proprio.

    Cioè dovrei disabilitare la freccia della tastiera subito dopo il primo press e riattivarlo quando è finita l'animazione...cosi è disattivo in partenza e basta....sto scimmiando.... :quote:

  6. #6
    Originariamente inviato da rotating-pole
    nada! cosi non si muove proprio.

    Cioè dovrei disabilitare la freccia della tastiera subito dopo il primo press e riattivarlo quando è finita l'animazione...cosi è disattivo in partenza e basta....sto scimmiando.... :quote:
    esatto devi disabilitare il pulsante quando parte l'animazione ed abilitarlo quando è finita la tween




    ps e poi questa riga è scritta male ...pardon

    var allx = all_mc._x;
    var ___TWEEN___:Tween = new Tween(all_mc, "_x", Regular.easeIn, allx,allx-100, 5, false);
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  7. #7
    ok credo di aver capito:
    quello che non mi è chiaro è:
    - perchè nella tween hai messo false alla fine? con false non si muove no?
    - non riesco a dare il nome istanza alle frecce della tastiera, ho messo if (Key.getCode(right) == Key.RIGHT) nel listener delle frecce e poi l'ho richiamato qua: right.enabled=false quando devo disattivarlo.

    ma continua ad andare

  8. #8
    puoi anche mettere cosi
    var ___TWEEN___:Tween = new Tween(_root.all_mc, "_x", Regular.easeIn, all_mc._x,all_mc._x-100, 0.5, true);

    che funge uguale

    >non riesco a dare il nome istanza alle frecce della tastiera, ho messo if (Key.getCode(right) == Key.RIGHT) nel listener delle frecce e poi l'ho richiamato qua: right.enabled=false quando devo disattivarlo.

    beh potresti mettere un controllo prima delle azioni che gli dai
    cioè setti una var sul frame
    //x farlo fungere la prima volta
    simuove=false

    poi

    if(!simuove){
    //fai le tue azioni altrimenti no ed imposti la var su true
    simuove=true
    }

    poi nella funzione x far spostare il clip
    quando finisce l'animazione la setti a false
    cioè una cosa del genere

    Codice PHP:

    import mx
    .transitions.Tween;
    import mx.transitions.easing.*;
    function 
    goright() {
    var 
    allx all_mc._x;
    var 
    ___TWEEN___:Tween = new Tween(_root.all_mc"_x"Regular.easeInall_mc._x,all_mc._x-1000.5true);

    var 
    tweenListener:Object = new Object();
    //
    tweenListener.onMotionFinished = function():Void {
    trace("finito");
    //qui lo riattivi
    simuove=false;
    };
    ___TWEEN___.addListener(tweenListener);
    }
     :
    ciauz
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  9. #9
    nebbia totale....sono ancora più confuso.
    Io le azioni per muovere (cioè la pressione delle frecce sulla tastiera)
    le richiamo con un listener, come faccio ad inserire in listener in un if cosi:

    if(!simuove){
    //fai le tue azioni altrimenti no ed imposti la var su true
    simuove=true
    }

    mi si impappa tutto.

    quello di prima mi era chiaro, il problema è che le frecce della tastiera, non essendo pulsanti nel flash, non riesco a richiamarli per disattivarli...il resto l'avevo capito

    Che casott!!

  10. #10
    Non ricordo i codici delle freccette ma prova ad utilizzare il tasto "k"
    con questo codice

    Codice PHP:
    = new Object() ;
    k.onKeyDown = function(){ 
              
    goRight()

    Key.addListener(k);

    statoRight=true

    function goRight(){
          if(
    statoRight){
               
    statoRight=false
               
    var allx all_mc._x
               var 
    twX:Tween = new Tween(all_mc"_x"Regular.easeInall_mc._x,all_mc._x-1000.5true);
               
    twX.onMotionFinished=function(){
                      
    statoRight=true
                
    }
            }else{
                  
    // se ripreme non deve fare nulla
            
    }

    Tentar .....

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.