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

    eseguire la funzione una sola volta in onEnterFrame

    Ciao
    ho questo problema...magari è dovuto al fatto cho sbaglio approccio...spero sappiate consigliarmi in proposito.

    Ho bisogno di individuare un'area dello stage che si attivi al passaggio del mouse (non posso affidarmi al semplice on RollOver, perchè poi in quest'area ho altri mocieclip, che devono ricevere l'evento RollOver, e perciò si creerebbero dei conflitti.

    L'ingresso del mouse nell'area attiva lancia la funzione rollOverArea();
    se sono fuori dall'area attiva si esegue la funzione rollOutArea.

    Per individuare se sono o non nell'area attiva ho bisogno di un enterFrame (a meno che ci sia un'altra possibilità che mi sfugge).

    lo script è:
    codice:
    rollOverArea = function () {
    	sequenza_mc.gotoAndPlay(2);
    };
    rollOutArea = function () {
    	sequenza_mc.gotoAndPlay("reverse");
    };
    _root.onEnterFrame = function() {
    	if (_xmouse>0 && _xmouse<720 && _ymouse>0 && _ymouse<400) {
    		rollOverArea();
    	} else {
    		rollOutArea();
    	}
    };
    dato che le fumzioni fanno eseguire un gotoAndPlay avrei bisongo che la funzione fosse eseguita una volta sola, e non, come logicamente avviene ora, ad ogni enterFrame.

    come posso fare?
    spero di aver spiegato decentemente.


  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    alla brutta potresti fare una cosa del genere:
    _root.vai=0
    rollOverArea = function () {
    sequenza_mc.gotoAndPlay(2);
    _root.vai=1
    };
    rollOutArea = function () {
    sequenza_mc.gotoAndPlay("reverse");
    _root.vai=0
    };
    _root.onEnterFrame = function() {
    if(_root.vai==0){
    if (_xmouse>0 && _xmouse<720 && _ymouse>0 && _ymouse<400)
    rollOverArea();

    }

    if(_root.vai==1){
    if ((_xmouse<0 or _xmouse>720) && (_ymouse<0 or _ymouse>400))
    rollOutArea();
    }

    }

    Non sarà il massimo ma dovrebbe funzionare

  3. #3

  4. #4
    Grazie...
    non so nemmeno io se formalmente è ineccepibile (dato che dici "non sarà il massimo") ma così può funzionare...
    non saprei se si può fare in altro modo.

    anche l'hit test è una buona idea per individuare un'area attiva (non ci avevo pensato) ma
    ricadrei comunque nel problema dell'enter frame (credo).

    in ogni caso, grazie 1000 ad entrambi

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.