Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Flash & ActionScript
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Flash & ActionScript Animazione web e linguaggio di programmazione

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 03-02-12, 15:47   #1 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
[AS3] Problema codice pulsanti menú

Ciao ragazzi, intanto grazie anticipatamente, apro questo thread poiché cercando nel forum non ho trovato soluzione...o meglio, ho provato qualcosa trovata ma non mi ha aiutato..

Questo è il codice:

Codice PHP:
function onMouseClick(e:MouseEvent):void 
            switch(
e.target.name) { 
                case 
btn_home.name =  "Home" 
                    
btn_home.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_home
                    
gotoAndPlay(1);
                break; 
                case 
btn_obiettivi.name =  "Obiettivi" 
                    
btn_obiettivi.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_obiettivi 
                    
gotoAndPlay(2);
                break;
                case 
btn_prodotti.name =  "Prodotti" 
                    
btn_prodotti.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_obiettivi 
                    
gotoAndPlay(3);
                break;
                case 
btn_info.name =  "Info" 
                    
btn_info.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_obiettivi 
                    
gotoAndPlay(4);
                break;
                case 
btn_collabora.name =  "Collabora" 
                    
btn_collabora.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_obiettivi 
                    
gotoAndPlay(5);
                break;
                case 
btn_contatti.name =  "Contatti" 
                    
btn_contatti.addEventListener(MouseEvent.CLICKonMouseClick);
                    
// quando fai click sul pulsante btn_obiettivi 
                    
gotoAndPlay(6);
                break;

              }   

Ovviamente ho nominato le istanze dei bottoni sopracitati ma niente...i pulsanti non funzionano! e rimango piantato sul primo frame :/

ho usato questo codice al posto di questo:

Codice PHP:
//Colleghiamo gli eventi all’istanza pulsante 
btn_home.addEventListener(MouseEvent.CLICKonMouseClick); 
//Intercettare il click sul pulsante 
function onMouseClick(event:MouseEvent):void 
gotoAndPlay(1); 


//Colleghiamo gli eventi all’istanza pulsante 
btn_obiettivi.addEventListener(MouseEvent.CLICKonMouseClick2); 
//Intercettare il click sul pulsante 
function onMouseClick2(event:MouseEvent):void 
gotoAndPlay(2); 


//Colleghiamo gli eventi all’istanza pulsante 
btn_prodotti.addEventListener(MouseEvent.CLICKonMouseClick3); 
//Intercettare il click sul pulsante 
function onMouseClick3(event:MouseEvent):void 
gotoAndPlay(3); 


//Colleghiamo gli eventi all’istanza pulsante 
btn_info.addEventListener(MouseEvent.CLICKonMouseClick4); 
//Intercettare il click sul pulsante 
function onMouseClick4(event:MouseEvent):void 
gotoAndPlay(4); 


//Colleghiamo gli eventi all’istanza pulsante 
btn_collabora.addEventListener(MouseEvent.CLICKonMouseClick5); 
//Intercettare il click sul pulsante 
function onMouseClick5(event:MouseEvent):void 
gotoAndPlay(5); 


//Colleghiamo gli eventi all’istanza pulsante 
btn_contatti.addEventListener(MouseEvent.CLICKonMouseClick6); 
//Intercettare il click sul pulsante 
function onMouseClick6(event:MouseEvent):void 
gotoAndPlay(6); 

Che funziona a metà cioè i comandi rispondono ma solo se clicco da sinistra a destra le voci...cioè le posizioni dei pulsanti sono: Home , obiettivi , prodotti , info , collabora e contatti? ecco se clicc su Obiettivi mentre sono su Home BENE! , se clicc o su prodotti mentre sono su obiettivi BENE! se clicc o su contatti mentre sono su Info BENE!

Ma

Se clicco su Home mentre sono su contatti (quindi andando dal Frame 6 al Frame 1) non va

Non capisco perché, cioè non è un codice così complesso..

Sapreste aiutarmi in uno dei due casi? Grazie ragazzi
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 16:37   #2 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Il secondo codice non ha niente che non va è il modo più semplice di scrivere un codice per pulsanti anche se poco professionale, al massimo al posto dei vari gotoAndPlay(n° frame) scrivi gotoAndStop(n° frame), il primo così su due piedi non ti so dire perchè non ho mai approfondito il ciclo swicth preferendo usare usare il for, a naso direi che manca un Array perchè imposti una comparazione
Codice:
 case.btn_home.name="Home"
ma "Home" da dove lo prende? Se non è istanziata una var o un Array.
Comunque se vuoi ti fornisco io un codice facile facile.

Codice:
stop()
var  lista_menu:Array = new Array(btn_home, btn_obiettivi, btn_prodotti, btn_info, btn_collabora, btn_contatti)
var vai:Array=new Array(1,2,3,4,5,6)
 for(var i:int=0;i<lista_menu.length;i++)
 {
    lista_menu[i].indice=i 
    lista_menu[i].addEventListener(MouseEvent.MOUSE_DOWN,onClick)
     }   
       function onClick(evento:MouseEvent):void {
            trace (evento.target.indice)
       gotoAndStop(vai[evento.target.indice])
      
      }
__________________

Nhatan

Ultima modifica di Nhatan : 03-02-12 16:40.
Nhatan non in linea   Rispondi citando
Vecchio 03-02-12, 16:46   #3 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
Nathan intanto grazie per aver risposto.

Dunque io quel codice non lo conosco bene , l'ho trovato su internet e l'ho adattato e provando ho notato che era quello che funzionava meglio.

oddio :O nathan sappi che parli con un ritardato in merito XD

dunque questo è il tuo codice:

Codice PHP:
stop()
var  
lista_menu:Array = new Array(btn_homebtn_obiettivibtn_prodottibtn_infobtn_collaborabtn_contatti)
var 
vai:Array=new Array(1,2,3,4,5,6)
 for(var 
i:int=0;i<lista_menu.length;i++)
 {
    
lista_menu[i].indice=
    lista_menu
[i].addEventListener(MouseEvent.MOUSE_DOWN,onClick)
     }   
       function 
onClick(evento:MouseEvent):void {
            
trace (evento.target.indice)
       
gotoAndStop(vai[evento.target.indice])
      
      } 
io come lo devo compilare? lista_menu è da sostituire con? e evento.target.indice?

E poi una cosa...nel tuo codice la funzione è solo una

Codice PHP:
}   
       function 
onClick(evento:MouseEvent):void {
            
trace (evento.target.indice)
       
gotoAndStop(vai[evento.target.indice])
      
      } 
o devo compiarla e incollarla sotto tanti quanti sono i pulsanti?

Riusciresti a compirlarlo tu? io sono tipo che le cose vuole conoscerle da solo eh però qui non so da dove partire perché ci sono differenti cose che non ho mai visto (non che abbia tutta st'esperienza XD)

grazie Nathan
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 16:56   #4 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Non devi fare altro che incollarlo nel tuo filmato, se hai sullo stage 6 pulsanti con quei nomi istanza e 6 fotogrammi da navigare devi solo copiare il codice nel primo frame senza fare altro.
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Vecchio 03-02-12, 17:13   #5 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
Mi da questo problema :/

ReferenceError: Error #1056: Impossibile creare la proprietà indice su flash.display.SimpleButton.
at exempleULTIMO_fla::MainTimeline/frame1()

As3 maledetto :S
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 18:10   #6 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
HO RISOLTO GRAZIE Nathan grazie milleeeee

dunque posto la soluzione AD UN MIO ERRORE , per evitare che altri lo commettano (penso di no perché troppo stupido)

Allora con il gotoAndPlay capitava che ero nella pagina prodotti? il pulsante rimaneva attivo e se ci ciccavo nuovamente mi attivava in gotoandplay e non so perché il play faceva camminare i frame

cosa ho fatto allora (scemo io)

in ogni pagina al posto del pulsante corrispondente alla pagina a cui faceva riferimento...io eliminavo il suddetto pulsante (lasciando attivi tutti gli altri) per evitare che rimanesse attivo e cliccabile...quindi per ogni pulsante che andavo a sostituire mettevo uno stop (è giusto).

Ora cosa ho fatto...ho detto cavolo non è possibile che mi devo andare a sostituire i sei pulsanti sondituendo ogni pulsante con un immagine dello stesso pulsante, per renderlo inattivo e non permettere alll'utente di cliccarci (perché sennò il gotoandplay lo mandava alla pagina seguente).

Ho messo su un fotogramma tutto il menu, ma ho creato un solo fotogramma chiave e i 5 restanti (un frame per ogni pulsante) erano fotogrammi semplici (mentre prima erano tutti chiave poiché dovevo sostituire pulsante per pulsante con un immagine per renderlo inattivo).

ho usato questo codice:

Codice PHP:
import flash.events.Event
import flash
.events.MouseEvent;

btn_home.addEventListener(MouseEvent.CLICKonMouseClick);
function 
onMouseClick(event:MouseEvent):void {
    
gotoAndStop(1);
}

btn_obiettivi.addEventListener(MouseEvent.CLICKonMouseClick2);
function 
onMouseClick2(event:MouseEvent):void {
    
gotoAndStop(2);
}

btn_prodotti.addEventListener(MouseEvent.CLICKonMouseClick3);
function 
onMouseClick3(event:MouseEvent):void {
    
gotoAndStop(3);
}

btn_info.addEventListener(MouseEvent.CLICKonMouseClick4);
function 
onMouseClick4(event:MouseEvent):void {
    
gotoAndStop(4);
}

btn_collabora.addEventListener(MouseEvent.CLICKonMouseClick5);
function 
onMouseClick5(event:MouseEvent):void {
    
gotoAndStop(5);
}

btn_contatti.addEventListener(MouseEvent.CLICKonMouseClick6);
function 
onMouseClick6(event:MouseEvent):void {
    
gotoAndStop(6);

cioè il primo funzionante, ma ho usato il gotoandstop che con tutti gli altri successivi codici non funzionava quindi mi ero detto se non funziona in questi sicuramente non funziona neanche nel primo che ho usato.

Ora va benissimo!

Io ti ringrazio di cuore per l'aiuto che mi hai dato perché non solo mi ha fatto ragionare (sul gotoandstop) ma ho comunque imparato antre cose

(ora mi resta da risolvere il problema del form che non so come fare, infatti ne ho preso uno pronto da un .fla scaricato...solo che non mi sta inviando la mail :/)
depeppe2000 non in linea   Rispondi citando
Vecchio 03-02-12, 20:11   #7 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,551
Apri una nuova discussione per il form.
__________________

Nhatan
Nhatan non in linea   Rispondi citando
Vecchio 03-02-12, 20:15   #8 (permalink)
User
 
Data di registrazione: Nov 2011
Ubicazione: catania
Messaggi: 17
issi lo so però prima voglio sbatterci un po la testa...spero di riuscirci solo se no passo
depeppe2000 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 09:57.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.