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

    Implementare alpha in gallery

    Ho questa galleria fotografica:

    function startImageViewer(rect_mc) {
    image_mc._visible=false;
    next_btn._visible=true;
    back_btn._visible=true;
    container_0_mc._visible=false;
    //rootNode = models_xml.firstChild.firstChild.firstChild;
    rootNode=rect_mc.pictures;
    //trace(rootNode);
    totalImages = rootNode.childNodes.length;
    //trace (totalImages);
    firstImageNode = rootNode.firstChild;
    //trace (firstImageNode);
    currentImageNode = firstImageNode;
    //trace (currentImageNode);
    currentIndex = 1;
    updateImage(firstImageNode);
    }


    function updateImage(newImageNode) {
    imagePath = 'WebModels/WebPictures/M_'+newImageNode.childNodes;
    //trace (imagePath);
    targetClip.loadMovie(imagePath);
    imageCount = "Viewing image " + currentIndex + " of " + totalImages;

    }



    next_btn.onRelease = function() {
    nextImageNode = currentImageNode.nextSibling;
    //trace (nextImageNode);
    if (nextImageNode == null) {
    break;
    } else {
    currentIndex++;
    updateImage(nextImageNode);
    currentImageNode = nextImageNode;
    }
    };


    back_btn.onRelease = function() {
    previousImageNode = currentImageNode.previousSibling;
    this.Alpha(false);
    if (previousImageNode == null) {
    break;
    } else {
    currentIndex--;
    currentImageNode = previousImageNode;
    updateImage(previousImageNode);
    }
    };

    Mi piacerebbe che le immagini compaiano con effetto alpha da 0 a 100 , ho provato a guardare qui nel forum per trovare una soluzione, ma non sono riuscito a realizzare l'effetto desiderato...forse anche perchè sono proprio una capra con l'action script di flash.
    C'è qualcuno che riuscirebbe a darmi una mano a capire come risolvere questo problema?

  2. #2

    Re: Implementare alpha in gallery

    Questa è una proto per l'assolvenza, e forse fa al caso tuo
    codice:
    //PROTO ALPHA
    MovieClip.prototype.alfa = function(initAlfa, endAlfa, speed) {
    	this._alpha = initAlfa;
    	this.onEnterFrame = function() {
    		var offset = 0.5;
    		var ralfa = Math.abs(endAlfa-this._alpha);
    		trace("ralfa: "+ralfa);
    		if (!(ralfa<offset)) {
    			var dalfa = Math.ceil(ralfa/speed);
    			(this._alpha<endAlfa) ? this._alpha += dalfa : this._alpha -= dalfa;
    			trace("this._alpha: "+this._alpha);
    		} else {
    			trace("alfa completo");
    			delete this.onEnterFrame;
    		}
    	};
    };
    ovviamente poi per richiamarla basta scrivere:
    codice:
    myMovie.alfa(initAlfa, endAlfa, speed)
    Lorenza

  3. #3
    Grazie Lorenza...credo sia proprio quello che fa al mio caso!
    Il mio problema però è proprio nel richiamarla...infatti se provo a richiamarla al momento del release del pulsante non funziona e non capisco perchè!
    Forse sbaglio proprio nel richiamarla al release del pulsante?

  4. #4
    il richiamo deve essere effettuato quando vuoi che inizi l'effetto.
    Ovviamente se carichi l'immagine prima, ma vuoi che l'effetto parta dopo, devi impostare l'alfa dell'oggetto appena caricato subito a zero.

    Tu puoi richiamare la proto quando vuoi, l'importante che la richiami nella forma corretta !

    Se per esempio vuoi che l'effetto parta al release del pulsante, devi richiamare la proto all'interno della sua funzione.
    codice:
    btn.onRelease = function (){
    myMovie.alfa(initAlfa, endAlfa, speed);
    }
    mi raccomando, inserisci i nome istanza e i percosi corretti !
    Altrimenti è ovvio che non funziona !

    Lorenza

  5. #5
    Scusa se sono così imbranato, ma io posso inserirlo anche all'interno di questo bottone?

    next_btn.onRelease = function() {
    nextImageNode = currentImageNode.nextSibling;
    //trace (nextImageNode);
    if (nextImageNode == null) {
    break;
    } else {
    currentIndex++;
    updateImage(nextImageNode);
    currentImageNode = nextImageNode;
    }
    };

    Perchè è proprio qui che mi serve...
    Il bottone prende l'immagine successiva e poi dovrebbe presentarmela con effetto alpha...ma se la inserisco qui non funziona...

  6. #6
    E' ovvio che devi inserire l'effetto DOPO aver caricato l'immagine successiva !
    Flash legge ed esegue le stringe nell'ordine in cui vengono scritte.
    Quindi prima devi caricare l'immagine e poi fare l'effetto.

    Riguardando bene il tuo codice secondo me devi inserirlo nella funzione in cui carichi l'immagine:
    codice:
    function updateImage(newImageNode) {
    imagePath = 'WebModels/WebPictures/M_'+newImageNode.childNodes;
    //trace (imagePath);
    targetClip.loadMovie(imagePath);
    targetClip.alfa(initAlfa, endAlfa, speed); 
    imageCount = "Viewing image " + currentIndex + " of " + totalImages;
    
    }
    però non so se funziona, non ho avuto il tempo di testare

  7. #7
    Grazie!!!!!! Ora funziona...

    Scusami se ti ho stressata, ma l'actionscript non è proprio il mio forte!!!

  8. #8
    Originariamente inviato da bonnyweb
    Grazie!!!!!! Ora funziona...

    Scusami se ti ho stressata, ma l'actionscript non è proprio il mio forte!!!
    di nulla !
    sono contenta di esserti stata di aiuto !

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