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

    MC Rollover con dentro un Pulsante

    Salve qualcuno sa comme realizzare un MC sensibile al RollOver e RollOut che contiene dei pulsanti che permettono di scalare e trascinare l'oggetto in questione?

    Devo realizzare un MC che contiene dei pulsanti che scalano l'oggetto stesso e gli permettono di essere draggabile.
    Fino qui tutto tranquillo.

    Il problema è che devo far apparire questi pulsanti nel MC solo quando ci si passa sopra con il mouse e farli sparire quando faccio il rollOut.

    Ho pensato allora di creare un pulsante invisibile(che si chiama areaSensibile) al livello superiore e della grandezza del MC che utilizzo per questo scopo, (ovvero per fare l'effetto RollOver,RollOut)utilizzando lo swapDepths lo porto sopra o sotto il MC (che si chiama baseContainer).

    Ok, tutto funziona finchè non passo sui pulsanti all'interno del MC.
    Infatti a questo punto succede che areaSensibile non "capta" più il RollOut/RollOver!!!

    areaSensibileUp.onRollOver=function(){
    trace("up")
    baseContainer.McTrascina._visible=1
    baseContainer.McScale._visible=1
    areaSensibileUp.swapDepths(baseContainer)

    }

    areaSensibileUp.onRollOut=function(){
    trace("down")
    baseContainer.McTrascina._visible=0
    baseContainer.McScale._visible=0
    baseContainer.swapDepths(areaSensibileUp)

    }

    Come risolvo questo problema!!
    Sto impazzendo avevo pensato di utilizzare l'oggetto Selection, ma è troppo complicato e non riesco a trovare degli esempi o spiegazioni in merito.

    L'unico esempio che ho trovato (penso minimamente coerente )è in tedesco e non capisco la struttura, infatti usa il prototype per ampliare la classe MovieClip, ma sul RollOut come faccio a far diventare la classe movieClip come era prima????:

    // Cursor in normal Form für MCs
    MovieClip.prototype.useHandCursor = _focusrect = false;

    // setFocus für alle MCs und Buttons bei onPress setzen
    MovieClip.prototype.onPress = Button.prototype.onPress = function() {
    Selection.setFocus(this);
    f_click = true;
    }

    // setFocus löschen wenn nicht aufs gleiche Object geklickt wurde
    MovieClip.onRollOver = function() {
    if(f_select == Selection.getFocus() && !f_click) {
    Selection.setFocus(null);
    }
    f_select = Selection.getFocus();
    delete f_click;
    }

    MovieClip.onRollOut = function() {
    if(f_select == Selection.getFocus() && !f_click) {
    Selection.setFocus(null);
    }
    f_select = Selection.getFocus();
    delete f_click;
    }

    Grazie cari ragazzi.

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Non mi pare che c'entri molto l'oggetto Selection. Invece del rollover e rollout, usa l'hitTest:

    codice:
    areaSensibileUp.sopra = false;
    areaSensibileUp.onMouseMove = function()
    {
    	if(this.hitTest(_root._xmouse, _root._ymouse, true)){
    		if(!this.sopra){
    			this.sopra = true;
    			this.rollingOver();
    		}
    	} else {
    		if(this.sopra){
    			this.sopra = false;
    			this.rollingOut();
    		}
    	}
    };
    
    areaSensibileUp.rollingOver = function()
    {
    	trace("up")
    	baseContainer.McTrascina._visible=1
    	baseContainer.McScale._visible=1
    	areaSensibileUp.swapDepths(baseContainer)
    }
    
    areaSensibileUp.rollingOut = function()
    {
    	trace("down")
    	baseContainer.McTrascina._visible=0
    	baseContainer.McScale._visible=0
    	baseContainer.swapDepths(areaSensibileUp)
    }

  3. #3
    Grande. Lo provo subito!

  4. #4
    Funziona!!!
    Sei un grande negatyve!

  5. #5
    Funziona!!!
    Sei un grande negatyve!

  6. #6
    Funziona!!!
    Sei un grande, Negatyve!

  7. #7

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.