Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Aiuto per menu a tab?

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309

    Aiuto per menu a tab?

    Ciao a tutti, vi espongo il problema, ho creato 5 tab, e con actionScript li faccio alzare e abbassare, solo che ora vorrei fare che se clicco su un tab, tutti gli altri si abbassano e si alza quello cliccato, in pratica deve essere visibile un tab per volta, ma non riesco a farlo, vi posto un po di codice e un'immagine, cosi magari capite che sto facendo.

    Codice PHP:
    _root.tab_1.btnTab.onPress = function() {
        
    tabMove(1)
    }
    _root.tab_2.btnTab.onPress = function() {
        
    tabMove(2)
    }
    _root.tab_3.btnTab.onPress = function() {
        
    tabMove(3)
    }
    _root.tab_4.btnTab.onPress = function() {
        
    tabMove(4)
    }
    _root.tab_5.btnTab.onPress = function() {
        
    tabMove(5)
    }

    function 
    tabMove (numTab) {
        var 
    strTab;
        
    strTab=eval("tab_"+numTab);
                
        
    strTab.onEnterFrame = function () {
            if (
    strTab._y >= _global.tabPositionY_UP) {
                
    strTab._y -= 16;
                
    _global.tab_pos[numTab]=1;
                
    strTab.tabFreccia._rotation 90;
                
            }
        
        };

        if (
    _global.tab_pos[numTab] == 1) {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y <= _global.tabPositionY_DOWN) {
                    
    strTab._y += 16;
                    
    strTab.tabFreccia._rotation = -90;
                    
    _global.tab_pos[numTab]=0;
                    
                } 

            };
        }

    Dimenticavo di dirvi che tutto questo codice è in un file .as e che nel primo frame del mio filmato ho queste costanti:
    Codice PHP:
    System.useCodepage=true;
    _global.tabPositionY_DOWN 166;
    _global.tabPositionY_UP 70;

    _global.tab_pos = Array();

    _global.tab_pos[1] = 0;
    _global.tab_pos[2] = 0;
    _global.tab_pos[3] = 0;
    _global.tab_pos[4] = 0;
    _global.tab_pos[5] = 0;
    #include "as/programma.as" 
    Immagini allegate Immagini allegate
    Ciao By Peter_Pan...

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    ci provo... allora... tu utilizzi la lista _global.tab_pos[numTab]
    dove vai a memorizzare 1 se è aperto 0 se è chiuso....

    basta che al press fai lanciare prima una funzione che chiude tutti i tab
    es.

    Codice PHP:
    _root.tab_1.btnTab.onPress = function() {
       
    chiudtab()
        
    tabMove(1)

    dove chiudtab() è fatta così

    Codice PHP:
    function chiudtab()
    {

    for (
    i=0;i<_global.tab_pos.length;i++)
    {
       if (
    _global.tab_pos[i]==1)
         {        
            
    i=_global.tab_pos.length  
            tabMove 
    (i)
         }
    }

    naturalmento ho improvvisato senza provare...
    ciao
    frabis

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    Si in teoria è giusto, ma in pratica non funziona, perchè il movimento di scendere o salire io lo do con onEnterFrame, e in pratica quando esegua la funzione per abbassare il tab che ha _global.tab_pos[i]==1 , mi fa un piccolo sobbalzo, poi entra in funzione onEnterFrame e quindi si blocca..
    Ciao By Peter_Pan...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    non avendo lo script.. non posso provare... ma se provi a modificare la funzione tabMove così

    Codice PHP:


    function tabMove (numTab) {
        var 
    strTab;
        
    strTab=eval("tab_"+numTab);
        if (
    _global.tab_pos[numTab] == 0)
       {
           
    strTab.onEnterFrame = function () {
              if (
    strTab._y >= _global.tabPositionY_UP) {
                 
    strTab._y -= 16;
                 
    _global.tab_pos[numTab]=1;
                
    strTab.tabFreccia._rotation 90;
                
            }
        
        };
       }
        else
       {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y <= _global.tabPositionY_DOWN) {
                    
    strTab._y += 16;
                    
    strTab.tabFreccia._rotation = -90;
                    
    _global.tab_pos[numTab]=0;
                    
                }

            };
        }

    può funzionare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    Fabris sei grande quasi quasi funzionava tutto... Ho apportato un po di modifiche sulla base dei tuoi consigli, ora se apro ad esempio il tab1 e poi clicco sul tab2, si chiude il tab1 e si apre il tab2 questo lo fa con tutti anche se non sono in sequenza, posso aprire il tab5 e poi il tab1 e funziona tutto, l'unica cosa che non funziona e prima funzionava, è che se clicco sul tab1 per aprirlo si apre ma se riclicco sempre sul tab1, non mi si chiude, ti posto il codice modifica, mentre tento di risolvere questo enigma, se nel frattempo ti viene qualche altra idea brillante fammi sapere.

    Grazie
    Codice PHP:
    //Funzioni per il click su i vari tab
    _root.tab_1.btnTab.onPress = function() {
        
    chiudtab(1);
        
    //tabMove(1)
    }
    _root.tab_2.btnTab.onPress = function() {
        
    chiudtab(2);
        
    //tabMove(2)
    }
    _root.tab_3.btnTab.onPress = function() {
        
    chiudtab(3);
        
    //tabMove(3)
    }
    _root.tab_4.btnTab.onPress = function() {
        
    chiudtab(4);
        
    //tabMove(4)
    }
    _root.tab_5.btnTab.onPress = function() {
        
    chiudtab(5);
        
    //tabMove(5)
    }

    function 
    tabMove (numTab) {
        var 
    strTab;
        
    strTab=eval("tab_"+numTab);
        
        if (
    _global.tab_pos[numTab] == 0) {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y >= _global.tabPositionY_UP) {
                    
    strTab._y -= 16;
                    
    _global.tab_pos[numTab]=1;
                    
    strTab.tabFreccia._rotation 90;
                }
            };
        } else {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y <= _global.tabPositionY_DOWN) {
                    
    strTab._y += 16;
                    
    strTab.tabFreccia._rotation = -90;
                    
    _global.tab_pos[numTab]=0;
                        
                } 
            };
        }
    }

    function 
    chiudtab(tabNum) { 
        for (
    i=1;i<_global.tab_pos.length;i++) { 
            var 
    strTabNasc;
            
    strTabNasc=eval("tab_"+i);
                    
            if (
    _global.tab_pos[i]==1) { 
                
    trace("i="+i+" valore="+_global.tab_pos[i])
                        
    tabMove(i);
                
    _global.tab_pos[i]=0;
            } 
        } 
        
    tabMove(tabNum);

    Ciao By Peter_Pan...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    risolto, vedi se ti piace??

    Codice PHP:
    //Funzioni per il click su i vari tab
    _root.tab_1.btnTab.onPress = function() {
        
    chiudtab(1);
        
    //tabMove(1)
    }
    _root.tab_2.btnTab.onPress = function() {
        
    chiudtab(2);
        
    //tabMove(2)
    }
    _root.tab_3.btnTab.onPress = function() {
        
    chiudtab(3);
        
    //tabMove(3)
    }
    _root.tab_4.btnTab.onPress = function() {
        
    chiudtab(4);
        
    //tabMove(4)
    }
    _root.tab_5.btnTab.onPress = function() {
        
    chiudtab(5);
        
    //tabMove(5)
    }

    function 
    tabMove (numTab) {
        var 
    strTab;
        
    strTab=eval("tab_"+numTab);
        
        if (
    _global.tab_pos[numTab] == 0) {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y >= _global.tabPositionY_UP) {
                    
    strTab._y -= 16;
                    
    _global.tab_pos[numTab]=1;
                    
    strTab.tabFreccia._rotation 90;
                }
            };
        } else {
            
    strTab.onEnterFrame = function () {
                if (
    strTab._y <= _global.tabPositionY_DOWN) {
                    
    strTab._y += 16;
                    
    strTab.tabFreccia._rotation = -90;
                    
    _global.tab_pos[numTab]=0;            
                } 
            };
        }
    }

    function 
    chiudtab(tabNum) { 
        var 
    strControlloClick="primo";
        for (
    i=1;i<_global.tab_pos.length;i++) { 
            var 
    strTabNasc;
            
    strTabNasc=eval("tab_"+i);
                    
            if (
    _global.tab_pos[i]==1) { 
                
    trace("i="+i+" valore="+_global.tab_pos[i])
                if (
    tabNum==i) {
                    
    strControlloClick="secondo";
                } else {
                    
    strControlloClick="terzo";
                }
                
    tabMove(i);
                
    _global.tab_pos[i]=0;
            } 
        } 

        if (
    strControlloClick=="secondo") {
            
    //Non fare niente
        
    }
        
        if (
    strControlloClick=="terzo") {
            
    tabMove(tabNum);
        }
        
        if (
    strControlloClick=="primo") {
            if (
    _global.tab_pos[tabNum]==0) {
                
    tabMove(tabNum);
            } 
        }

    Ciao By Peter_Pan...

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    perfetto!

    frabis

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    grazie
    Se puoi mi daresti assistenza per un'altra domanda?? se vedi nell'immagine che ti ho postato, sotto al tab ci sono delle voci, io vorrei che quando vado su una voce, mi si illumini un rettangolo e che quando ci clicco vada ad un determinato url, il porblema che non ci sono gli stessi item per ogni tab, nel senso che nel tab 2 ci sono solo 2 voci, mentre nel terzo ce ne sono 4 e così via, io ho proceduto in questo modo, dato che i tab sono un unico movie clip, ho inserito 6 text dinamiche, e sei btn che al passaggio mi si illuminano, ed ho gestito tutto lato codice..
    Codice PHP:
    su ogni BTN ho inserito il seguente codice:
    on (press) {
        
    _root.chiamaLink("1");
    }

    mentre nel file .as ho scritto:
    function 
    chiamaLink(numLink) {    
        if (
    _root.tab_1.hitTest(_root._xmouse_root._ymouse)) {
            
    trace("Tab 1 link "numLink)
        } else if (
    _root.tab_2.hitTest(_root._xmouse_root._ymouse)) {
            
    trace("Tab 2 link "numLink)
        } else if (
    _root.tab_3.hitTest(_root._xmouse_root._ymouse)) {
            
    trace("Tab 3 link "numLink)
        } else if (
    _root.tab_4.hitTest(_root._xmouse_root._ymouse)) {
            
    trace("Tab 4 link "numLink)
        } else if (
    _root.tab_5.hitTest(_root._xmouse_root._ymouse)) {
            
    trace("Tab 5 link "numLink)
        }

    Quello che non riesco a fare è togliere il button li dove non c'è l'item, avevo pensato di usare magari dei movieClip invece che dei button, in modo tale da potergli dire removeMovieClip(dell'item non esistente), ma non riesco ad associargli la funzione che ho messo su i vati button, mi puoi suggerire qualche cosa??
    Ciao By Peter_Pan...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    15
    per la serie ... come complicarsi la vita...

    se invece.. dentro ad ogni tab fai caricare un movieclip che al suo interno duplica n elementi
    L'elemento da duplicare è così formato:

    liv 1 bottone con solo stato over es giallo alpha 50% (pure meno)
    liv 2 testo
    liv 3 sfondo (se c'è)

    In questo modo ti si creano n bt a secondo del menu.

    non posso postarti il codice perchè devo proprio scappare...

    ciao
    Frabis

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    ok Grazie cmq, mi sa che prendo in considerazione la tua prima frase
    per la serie ... come complicarsi la vita...
    e me ne frego.. almeno per il momento
    Ciao By Peter_Pan...

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.