Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: rimuovere le funzioni

  1. #1

    rimuovere le funzioni

    ciao,
    ho un altro problema:
    ho un oggetto (denominato "mask") che deve scalarsi da 0 a 100%, arrivato al 100% deve attaccare un clip (denominato "titolo") nel clip che contiene "mask". Il codice che ho scritto (dentro "mask") è questo:

    this.onEnterFrame = function() {
    _xscale -= (_xscale-100)/6;
    if (_xscale>99) {
    _xscale = 100;
    _parent.attachMovie("titolo", "tit", 0);
    }
    };

    con questo codice "mask" richiama "titolo" ma lo fa in maniera ciclica, per cui l'animazione contenuta in "titolo" non parte mai.
    Domanda: c'è un modo per "rimuovere" la funzione una volta che la scalatura di "mask" è arrivata al 100%???

    grazie 1000

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: rimuovere le funzioni

    Originariamente inviato da ferdinandprsche
    Domanda: c'è un modo per "rimuovere" la funzione una volta che la scalatura di "mask" è arrivata al 100%???

    grazie 1000
    Prova così:
    codice:
    this.onEnterFrame = function() {
    	_xscale -= (_xscale-100)/6;
    		if (_xscale>99) {
    		_xscale = 100;
    		_parent.attachMovie("titolo", "tit", 0);
    		delete this.onEnterFrame;
    	}
    };
    わさび

  3. #3
    delete nomeFunction
    guarda che una volta eliminita non puoi piu' recuperarla.
    -Nextart.it Graphic Solutions

  4. #4
    grazie100000000!!!!

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da ferdinandprsche
    grazie100000000!!!!
    Di nulla
    わさび

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Premetto che non so se sia corretto questo modo di operare:
    codice:
    this.onEnterFrame = function() {
    	_xscale -= (_xscale-100)/6;
    	if (_xscale>99) {
    		if (!unaVolta) {
    			_xscale = 100;
    			_parent.attachMovie("titolo", "tit", 0);
    			unaVolta = !unaVolta;
    		}
    	}
    };

    :master:

    in pratica, al primo 'onEnterFrame':
    codice:
    (!unaVolta)
    se il contrario di unaVolta è 'true' (e infatti lo è al primo onEnterFrame, perchè 'unaVolta' non essendo mai stata dichiarata prima ha valore 'false' e con l'operatore '!' davanti, assume il significato fittizio di 'true')... esegui le funzioni.
    codice:
    unaVolta = !unaVolta ;
    'unaVolta' è uguale al valore contrario di 'unaVolta' (che come si diceva, non essendo mai stata dichiarata prima è 'false'), cioè 'unaVolta' è uguale 'true'.

    Al secondo 'onEnterFrame' non vengono più eseguite le funzioni all'interno di 'if' perchè 'unaVolta', essendo stata dichiarata uguale a 'true', ora nella condizione dell'if assume il significato fittizio di 'false'.


    Ciao,


    -

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Quello che hai scritto è corretto ma credo che bisogni mettere prima della funzione unaVolta = false; altrimenti all'inizio la variabile unaVolta dovrebbe assumere il valore undefined...
    わさび

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    163
    Trinità76,

    Sì 'unaVolta' al primo 'onEnterFrame' è 'undefined' (e non 'false' come avevo scritto). Rimane che l'espressione '!undefined' è 'true' (prova a testare: trace(!undefined)).

    ('unaVolta' non va dichiarato prima della funzione altrimenti l'if ripeterà le funzioni anche con gli 'onEnterFrame' successivi).


    ciao





    -

  9. #9
    grazie a tutti ragarzzi!

  10. #10
    una cosa non capisco:
    se io scrivo
    this.onEnterFrame = function() {
    _xscale -= (_xscale-100)/6;
    if (_xscale>99) {
    _xscale = 100;
    _parent.attachMovie("titolo", "tit", 0);
    delete onEnterFrame
    }
    };
    l'output mi dice che sono stati superati i 256 livelli di ricorsione temo di non saper usare delete!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.