Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    44

    Problema con ricomparsa i movieclip con _alpha impostato a 0

    Ciao a tutti,
    ho un problema:ho cerato un movie clip grande 980*400 che si trova fuori dallo stage a sinistra.Con il codice che ho allegato sotto,la mia intenzione e farlo muovere sino a che la sua posizione non corrisponde a 0 essendo ora la x a -980, e a questo punto,cioè a x=0 vorrei che il movieclip riduca l'alpha sino a zero gradatamente.Sino a qui tutto bene, ma dopo circa un minuto il movieclip ricompare sullo stage con alpha=100 per poi scomparire opo circa 10secondi.
    Mi potreste aiutare a capire dov'è l'errore.
    Grazie in anticipo.



    onClipEvent (load) {
    x = this._x;
    trace(x);
    }
    onClipEvent (enterFrame) {
    if (x == 0) {
    //imposto _alpha del movieclip che contiene la home a 100
    _root.index._alpha = 100;
    if (this._alpha == 0) {
    this._alpha = 0;
    } else {
    this._alpha -= 20;
    }
    } else {
    x += 98;
    this._x = x;
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    44
    Ho capito dove stà il problema...con onClipEvent(enterFrame), quanto il mio alpha arriva a 0 a questo continua ad essere sottratto il valore da me impostato diventando negativo sino a che non diventa automativamnte positivo per poi tornare negativo.

    Mi potreste consigliare un modo per ottimizzare questo script.
    Grazie.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    44
    Se non erro ho risolto il problema,ecco il nuovo script:

    onClipEvent (load) {
    x = this._x;
    }
    onClipEvent (enterFrame) {
    if (x == 0) {
    //imposto _alpha del movieclip che contiene la home a 100
    _root.index._visible = true;
    if (this._alpha <0) {
    this._alpha = 0;
    } else {
    this._alpha -= 20;
    }
    } else {
    x += 98;
    this._x = x;
    }
    }

  4. #4
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Questa parte di codice va ottimizzata, perche continua a impostare alpha a 0, poi controlla se è minore di 0 e siccome nn lo è sottrae 20,
    cosi' all infinito :

    if (this._alpha <0) {
    this._alpha = 0;
    } else {
    this._alpha -= 20;
    }

    ottimizza cosi

    if (this._alpha >0) {
    this._alpha -= 20;
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    438
    oppure potresti applicare il codice nel primo frame della timeline e al momento opportuno cancellare l'enterframe:

    codice:
    var x = _root.mc._x;
    trace(x);
    _root.mc.onEnterFrame = function()
    {
    	trace("attivo");
    	if (x == 0) 
    	{
    		//imposto _alpha del movieclip che contiene la home a 100
    		_root.index._alpha = 100;
    		if (this._alpha <= 0) 
    		{
    			this._alpha = 0;
    			this.onEnterFrame = undefined;
    			trace("spento");
    		} else {
    			this._alpha -= 20;
    		}
    	} else {
    		x += 98;
    		this._x = x;
    	}
    }
    mc è il nome d'istanza del mc da spostare.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    44
    Grazie ad entrambi, siete stati utilissimi.
    Una domanda per Nevada:
    quando rendo undefined l'evento onClipEvent, posso poi riattivarlo?

  7. #7
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    X riattivarlo devi mettere tutto il codice in una funzione e richiamarla reimpostando tutte le variabili dall'inizio, altrimenti nn ha senso cosi come' scritto riattivarlo, visto che il suo compito è finito.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    44
    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.