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

    problema ciclo onEnterFrame

    salve a tutti,

    ho un problema a gestire un ciclo onEnterFrame. posto il codice e poi lo discuto:
    codice:
    this.onEnterFrame = function() {
    	if (i_dopo._x==0 && i_dopo._y==-768) {
    		this.i_dopo.i_trama1.play();
    		delete this.onEnterFrame;
    	}
    }
    questo è sulla timeline principale.
    il mio stage è settato a 1024 x 768.

    i_dopo è un movieclip grande che io muovo utilizzando le freccette e che è composto da 4 altri movieclip ognuno dei quali è un 1024 x 768.

    i_trama1 è uno di questi movieclip che compongono i_dopo. questo ha al suo interno un animazione con stop() all'inizio e alla fine.




    in sostanza, quando io faccio muovere i_dopo, se mi trovo in determinate coordinate(x=0 e y=-768), l'animazione all'interno di i_trama1 deve partire.

    con il codice sopra inserito, la cosa funziona a meraviglia. l'animazione parte, cancello il ciclo onenterframe ed evito così il loop.

    il problema subentra nel momento in cui devo aggiungere anche gli altri movieclip che compongono i_dopo (i_trama2, i_trama3 e i_trama4).

    il codice diventerebbe così:

    codice:
    this.onEnterFrame = function() {
    	if (i_dopo._x==0 && i_dopo._y==-768) {
    		this.i_dopo.i_trama1.play();
    		delete this.onEnterFrame;
    	} else if (i_dopo._x==0 && i_dopo._y==0) {
    		this.i_dopo.i_trama2.play();
    		delete this.onEnterFrame;
    	} else if (i_dopo._x==-1024 && i_dopo._y==-768) {
    		this.i_dopo.i_trama3.play();
    		delete this.onEnterFrame;
    	} else if (i_dopo._x==-1024 && i_dopo._y==-1536) {
    		this.i_dopo.i_trama4.play();
    		delete this.onEnterFrame;
    }
    ovviamente in questo modo non funziona. esplicato il primo if, l'onEnterFrame si cancella e buonanotte al secchio.

    come fare?


    io devo poter muovere il grande movieclip "i_dopo" ed ogni volta che si trova in una di quelle coordinate deve partire uno di quei movieclip, una volta sola, non in loop.

    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Ciao, scusa per poter cercare di darti una mano ho bisogno di capire come si muovono i clip filmato, nel codice che hai postato non vedo la funzione onEnterFrame che fa muovere i clip, Come fanno questi a spostarsi? Per capirci dovresti avere una funzione del genere.
    codice:
    this.i_dopo.i_trama1..onEnterFrame=function(){
    	this.i_dopo.i_trama1._x+=2}
    }

  3. #3
    i_dopo si muove con la classe transition.

    ho dichiarato delle funzioni sulla timeline principale con le mx.transitions che effettuano uno spostamento di +1024 o -1024 o +768 o -768 e le ho richiamate tramite on (keyPress "<Down>") oppure "up" etc... su un movieclip controller.


    l'esempio di codice è questo:
    questa riga è sulla timeline principale
    codice:
    function up() {
    	var yourTween:Tween = new Tween(i_dopo, "_y", Strong.easeOut, i_dopo._y, (i_dopo._y+768), 1, true);
    }
    mentre questa riga è sul movieclip vuoto controller:
    codice:
    on (keyPress "<Up>") {
    	if ((this._parent.i_dopo._x==0 && this._parent.i_dopo._y==-768))
    	{
    	    this._parent.up();
    	}
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Usando gli eventi da tastiera, troppo limitati, è un bel problema controllare onEnterFrame, e se invece di fare un unica funzione per tutti gli mc trama ne fai una per ognuno? Potrebbe funzionare?

  5. #5
    nn posso creare più enterframe in quanto quelli precedenti verrebbero rimossi

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Mettendo ogni EnterFrame dentro una funzione diversa e poi richiamndo le funzioni dall'evento key up mettendo la condizione if nel mc controller, in uno schema, certo rozzo e semplice che ho fatto sembra funzionare, bisogna vedere applicando il concetto al tuo filmato.

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.