Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360

    Fade in e livello superiore

    Ciao!

    E' un pò che stò sbattendo su una cosa:

    - Linguaggio AS3;
    - ho 10 MovieClip ovvero le 10 sezioni del mio sito;
    - ho 10 pulsanti che al clic devono aprire il MovieClip di sezione corrispondente.

    I MovieClip di sezione devono però aprirsi in effetto fade in quindi da alpha 0 a 100 e devono coprire assolutamente qualsiasi precedente sezione, quindi l'apertura del MovieClip deve apparire in un livello sempre superiore e per non rallentare il sito flash, al termine del fade in, mettere un codice AS3 che faccia l'unload di tutte le sezioni ad eccezione naturalmente di quella che deve rimanere visibile perché richiamata con il clic del pulsante.

    Spero di essermi spiegato, chiedo il vostro aiuto.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sarebbe meglio se iniziassi con lo spiegare quello che già hai fatto e il punto in cui ti fermi.
    Così come è posta la richiesta sembra che chiedi che ti venga realizzato da altri.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Sto partendo intanto con solo 3 sezioni, mettendole sulla timeline riesco a saltare attraverso le label da una parte all'altra ma sono convinto che ci sarebbero problemi nell'applicare il fade, ecco perché stavo vedendo la gestione dei MovieClip e quindi sto lavorando anche su:

    - 3 MovieClip presenti il libreria ed esportati nel primo frame;
    - MovieClip "pageHolder" sullo stage
    - il seguente

    Codice PHP:
    stop();

    var 
    pageClasses:Array = [page1page2page3];

    var 
    pages:Array = [];
    for (var 
    i:int 03i++) {
      var 
    clazz:Class = getDefinitionByName("page"+i);
      
    pages.push(new clazz());
    }

    var 
    currentPage:DisplayObject null;
    var 
    currentPageNumber:int = -1;

    function 
    showPage(which:int):void{
      if (
    currentPage != null){
        
    pageHolder.removeChild(currentPage);
      }
      
    currentPageNumber which 1;
      
    currentPage pages[currentPageNumber];
      
    pageHolder.addChild(currentPage);

    mi da però errore Scena 1, livello 'Livello 3', fotogramma 2, riga 7 1118: Assegnazione forzata implicita di un valore di tipo statico Object a un tipo Class che potrebbe non essere correlato.

    Risolto questo problema, pensavo di utilizzare l'effetto fedain di greensock tweening

    Ancora non ho implementato nessun pulsante per saltare da una parte all'altra visto l'attuale problema.

    Naturalmente al completamento del fedain il precedente MovieClip deve svuotarsi, ma nel fedein la sovrimpressione ci deve essere.

    Grazie PER I TUOI SUGGERIMENTI.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Nessun suggerimento? Mi sono incartato!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Ho cambiato approccio e con addChild e con TweenLite riesco a navigare nelle mie varie sezioni ovvero MovieClip presenti in Libreria ed esportati in AS.

    Il problema è il seguente, ogni volta che carico una sezione (MovieClip) si sovrappone alle precedenti e poiché rimangono in memoria, navigate una decina di sezioni, il filmato flash incomincia a rallentare.

    Come faccio ha rimuovere tutte le sezioni caricate ad eccezione dell'ultima?

    Va tenuto presente che l'ultima sezione si apre con effetto alpha da 0 a 100 e l'effetto sovrapposizione avviene grazie alla presenza della precedente sezione visitata, ora vorrei che questo gioco rimanesse ma che tutte le sezioni, ad eccezione dell'ultima selezionata, venissero rimosse ad esempio con removeChild, per far rimanere il gioco di sovrapposizione il comando removeChild dovrebbe partire dopo un secondo (termine dell'effetto alpha).

    Cosa mi dite?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Ecco una parte del mio codice PHP:

    Codice PHP:
    import com.greensock.TweenLite

    ProdottiBtn.addEventListener(MouseEvent.CLICKgoProdotti); 
    function 
    goProdotti (e:MouseEvent):void 
    var 
    newProdotti:Prodotti = new Prodotti(); 
    addChild(newProdotti); 
    newProdotti.0
    newProdotti.0
    TweenLite.from(newProdotti1, {alpha:0}); 


    ContattiBtn.addEventListener(MouseEvent.CLICKgoContatti); 
    function 
    goContatti (e:MouseEvent):void 
    var 
    newContatti:Contatti = new Contatti(); 
    addChild(newContatti); 
    newContatti.0
    newContatti.0
    TweenLite.from(newContatti1, {alpha:0}); 


  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Per favore, un aiuto...

  8. #8
    prima di fare l'addChild dovresti fare la tween della sezione prima che sparisce, quindi ci vuole che te la salvi in qualche modo, con AS3 certi automatismi non ce li ho, non so se puoi fare una variabile senza dargli il tipo

    tipo

    var saved (fuori dalle funzioni di click) e poi metterci di volte in volta la classe, tipo

    codice:
    function goProdotti (e:MouseEvent):void { 
    var newProdotti:Prodotti = new Prodotti(); 
    saved = new Prodotti
    addChild(newProdotti); 
    newProdotti.x = 0; 
    newProdotti.y = 0; 
    TweenLite.from(newProdotti, 1, {alpha:0}); 
    }  
    }
    Se sta cosa non da errore puoi fare

    codice:
    function goProdotti (e:MouseEvent):void { 
    TweenLite.to(saved, 1, {alpha:0, onComplete:function(){removeChild(saved)}})
    
    var newProdotti:Prodotti = new Prodotti(); 
    saved = new Prodotti
    addChild(newProdotti); 
    newProdotti.x = 0; 
    newProdotti.y = 0; 
    TweenLite.from(newProdotti, 1, {alpha:0}); 
    
    }  
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Grazie Stan del tuo aiuto, ma non riesco a lavorare con la questione della variabile che tu dici, allego il file di partenza su cui stò facendo le prove http://www.mediafire.com/?8z24d2n37bpb4fa

    var saved va inserito una volta sola oppure devo fare
    var saved1
    var saved2
    var saved3

    Non sò se può essere d'aiuto anche questo codice che ho trovato:
    Codice PHP:
    //create a "blank" variable that can stand in
    //for any of your pages:
    var currentPage:MovieClip;

    //START Initial page load settings
    addChild(homestuff);
    homestuff.alpha 0;
    TweenLite.to(homestuff1, {alpha:1});
    currentPage homestuff;


    linkBtn1.addEventListener(MouseEvent.CLICKshowhome);
    function 
    showhome(evt:MouseEvent):void {
        if(
    homestuff != currentPage) {
            
    //fade out currentPage:
            
    TweenLite.to(currentPage1, {alpha:0});
            
    //fade in homestuff:
            
    addChild(homestuff);
            
    homestuff.alpha 0;
            
    TweenLite.to(homestuff1, {alpha:1onComplete:switcherooonCompleteParams:[homestuff]});
        }
    }
    linkBtn2.addEventListener(MouseEvent.CLICKshowlocation);
    function 
    showlocation(evt:MouseEvent):void {
        if(
    locationstuff != currentPage) {
            
    //fade out currentPage:
            
    TweenLite.to(currentPage1, {alpha:0});
            
    //fade in locationstuff:
            
    addChild(locationstuff);
            
    locationstuff.alpha 0;
            
    TweenLite.to(locationstuff1, {alpha:1onComplete:switcherooonCompleteParams:[locationstuff]});
        }
    }
    linkBtn3.addEventListener(MouseEvent.CLICKshowtenants);
    function 
    showtenants(evt:MouseEvent):void {
        if(
    tenantsstuff != currentPage) {
            
    //fade out currentPage:
            
    TweenLite.to(currentPage1, {alpha:0});
            
    //fade in tenantsstuff:
            
    addChild(tenantsstuff);
            
    tenantsstuff.alpha 0;
            
    TweenLite.to(tenantsstuff1, {alpha:1onComplete:switcherooonCompleteParams:[tenantsstuff]});
        }
    }
    linkBtn4.addEventListener(MouseEvent.CLICKshowdesign);
    function 
    showdesign(evt:MouseEvent):void {
        if(
    designstuff != currentPage) {
            
    //fade out currentPage:
            
    TweenLite.to(currentPage1, {alpha:0});
            
    //fade in designstuff:
            
    addChild(designstuff);
            
    designstuff.alpha 0;
            
    TweenLite.to(designstuff1, {alpha:1onComplete:switcherooonCompleteParams:[designstuff]});
        }
    }
    linkBtn5.addEventListener(MouseEvent.CLICKshowcontact);
    function 
    showcontact(evt:MouseEvent):void {
        if(
    contactstuff != currentPage) {
            
    //fade out currentPage:
            
    TweenLite.to(currentPage1, {alpha:0});
            
    //fade in contactstuff:
            
    addChild(contactstuff);
            
    contactstuff.alpha 0;
            
    TweenLite.to(contactstuff1, {alpha:1onComplete:switcherooonCompleteParams:[contactstuff]});
        }
    }
    //function that removes the current page and then resets it to the new choice:
    function switcheroo(theNewPage:MovieClip):void {
        
    removeChild(currentPage);
        
    currentPage theNewPage;

    Ho provato a personalizzarlo ma riscontro questi errori
    Codice PHP:
    Scena 1livello 'Livello 1'fotogramma 1riga 16    1176Confronto tra un valore di tipo statico Class e un tipo flash.display:MovieClip che potrebbe non essere correlato.
    Scena 1livello 'Livello 1'fotogramma 1riga 20    1067Assegnazione forzata implicita di un valore del tipo Class a un tipo flash.display:DisplayObject non correlato.
    Scena 1livello 'Livello 1'fotogramma 1riga 21    1119Accesso a una proprietà non definita alpha mediante un riferimento con tipo statico Class. 

  10. #10
    codice:
    import com.greensock.TweenLite;  
    
    ProdottiBtn.addEventListener(MouseEvent.CLICK, goProdotti);  
    
    var saved
    
    function elimina(target){
    	removeChild(target)
    }
    function goProdotti (e:MouseEvent):void {  
    	var newProdotti:Prodotti = new Prodotti(); 
    	if (saved!=undefined){
    		TweenLite.to(saved, 1, {alpha:0, onComplete:elimina, onCompleteParams:[saved]});  
    	}
    	saved = newProdotti	
    	addChild(newProdotti);  
    	
    	newProdotti.x = 0;  
    	newProdotti.y = 0;  
    	TweenLite.from(newProdotti, 1, {alpha:0});  
    }  
    
    ContattiBtn.addEventListener(MouseEvent.CLICK, goContatti);  
    
    function goContatti (e:MouseEvent):void {  
    	var newContatti:Contatti = new Contatti();  
    	if (saved!=undefined){
    		TweenLite.to(saved, 1, {alpha:0, onComplete:elimina, onCompleteParams:[saved]});  
    	}
    	saved = newContatti		
    	addChild(newContatti);  
    	newContatti.x = 25;  
    	newContatti.y = 25;  
    	TweenLite.from(newContatti, 1, {alpha:0});  
    }

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.