Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: Pannello apri chiudi

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    177

    Pannello apri chiudi

    Saranno 2 ore circa che studio il meccanismo..
    Ho due menu e due pulsanti..
    -
    1) istanziato: istanza_menu
    2) istanziato: controlvolume
    3) istanziato: istanza_puls_menu
    4) istanziato: istanza_puls_control
    -
    Il menu istanziato: istanza_menu funge anche se da un piccolo errore trascurabilissimo.
    Vi spiego come l'ho realizzato..
    In breve tale menu dovrebbe aprire e chiudersi di conseguenza tramite il pulsante (istanza_puls_menu)
    Veniamo al dunque..
    -
    Stage1

    All'interno vi è un mc (istanza_menu)
    All'interno di mc (istanza_menu) c'è un interpolazione movimento che apre il pannello.
    Al primo frame dell'interpol.mov. ho inserito l'azione:
    codice:
     stop();
    Infine all'interno di stage c'è (istanza_puls_menu) con azione:
    codice:
     istanza_puls_menu.onRelease = function(){ 
    if(!a){ 
    _root.istanza_menu.play() 
    _root.istanza_menu.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.istanza_menu.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    Il menu in questo modo si apre e si chiude trankuillamente.

    Adesso però ho fatto la stessa cosa con (istanza_puls_control)
    Dunque:

    Stage1

    All'interno vi è un mc (controlvolume)
    All'interno di mc (controlvolume) c'è un interpolazione movimento che apre il pannello.
    Al primo frame dell'interpol.mov. ho inserito l'azione:
    codice:
     stop();
    Infine all'interno di stage c'è (istanza_puls_control) con azione:
    codice:
     istanza_puls_control.onRelease = function(){ 
    if(!a){ 
    _root.controlvolume.play() 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    Mi chiedo: perchè il primo sì ed il secondo no!?
    Ringrazio quelli che presteranno attenzione al post.. :quipy:
    "E d'un tratto capii che il pensare è per gli stupidi, mentre i cervelluti si affidano all'ispirazione!"

  2. #2
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Che fai, dici le bugie ?

    controlvolume.onRelease = function(){
    if(!a){
    _root.controlvolume.play()
    _root.controlvolume.onEnterFrame = function(){
    if(this._currentframe == this._totalframes){
    this.stop()
    a = true
    this.onEnterFrame = null
    }
    }
    }else{
    _root.controlvolume.onEnterFrame = function(){
    if(this._currentframe > 1){
    this.prevFrame()
    }else{
    this.onEnterFrame = null
    a = false
    }
    }
    }
    }

    Nessuno dei due può funzionare perché in prima riga e in entrambi in casi dichiari un nome istanza diverso da quello vero.

    Tutto qui.

    Ciao,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  3. #3
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Ho riletto sin dall'inizio e mi chiedo:

    perché vuoi usare anche due pulsanti se quello script "bottonizza" la clip stessa ? Suppongo che l'interpolazione serva ad aprire il pannello gradualmente, altrimenti non avrebbe senso. Se sì, puoi mettere un altro layer nell'interpolazione e una bella scritta Apri, da sola, nel primo frame. Sembrerà di cliccare un pulsante quando in effetti cliccherai la clip. Se nell'ultimo frame dell'interpolazione ci metti una scritta Chiudi (o cmq un disegno X che segnala la chiusura), cliccherai la X e l'illusione si ripeterà per chiudere il pannello.

    Nessun pulsante, solo la clip e quello script.

    O no ?

    Se proprio vuoi far uso di due pulsanti, un altro metodo è questo:

    Nel primo frame dell'interpolazione c'è il pulsante, da solo, messo in un altro layer. Sotto, a partire dal frame 2, inizia l'interpolazione. Nell'ultimo frame (layer del pulsante) fai un blank keyframe e ci metti l'altro pulsante (chiusura). Nel primo e nell'ultimo frame c'è stop ();

    Al pulsante del primo frame:

    on (press) {
    ritorno = false;
    play ();
    }

    A quello dell'ultimo frame:

    on (press) {
    this.ritorno = true;
    }

    Resta solo da associare alla clip:

    onClipEvent(enterFrame){
    if(ritorno)this.prevFrame();
    }

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    177
    Originariamente inviato da NAP
    Che fai, dici le bugie ?

    controlvolume.onRelease = function(){
    if(!a){
    _root.controlvolume.play()
    _root.controlvolume.onEnterFrame = function(){
    if(this._currentframe == this._totalframes){
    this.stop()
    a = true
    this.onEnterFrame = null
    }
    }
    }else{
    _root.controlvolume.onEnterFrame = function(){
    if(this._currentframe > 1){
    this.prevFrame()
    }else{
    this.onEnterFrame = null
    a = false
    }
    }
    }
    }

    Nessuno dei due può funzionare perché in prima riga e in entrambi in casi dichiari un nome istanza diverso da quello vero.

    Tutto qui.

    Ciao,

    NAP
    NON scherziamo! Funziona perfettamente istanza_menu con il pulsante istanza_puls_menu
    Da solo questo errore ma funziona alla perfezione!
    **Errore** Scena=Scena 1, livello=pulsante menu, fotogramma=1:Linea 1: L'istruzione deve apparire all'interno del gestore on
    istanza_puls_menu.onRelease = function(){

    Totale errori ActionScript: 1 Errori segnalati: 1
    -
    Non dico mai bugie :quipy:
    -
    E' il secondo che non funge, siccome c'è un'altro pulsante e un'altro menu che dovrebbe aprire e chiudersi che hanno le stesse caratteristiche (ovvero non sono dentro altri mc per il quale c'è da rispettare la _root).
    -
    Scusami amico ma come fa lo scrìpt a bottonizzare la clip stessa?! D'altronde con il istanza_puls_control vorrei aprire solo controlvolume visto che l'azione è:
    codice:
    istanza_puls_control.onRelease = function(){ 
    if(!a){ 
    _root.controlvolume.play() 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    Dimenticavo, chiedo scusa.. sopra avevo scritto:
    codice:
     controlvolume.onRelease = function(){
    invece di
    codice:
     istanza_puls_control.onRelease = function(){
    Forse è per quello che mi hai detto che dicevo bugie..

    Cerca di farmi capire perchè il 2° non funge! :master:
    Grazie
    "E d'un tratto capii che il pensare è per gli stupidi, mentre i cervelluti si affidano all'ispirazione!"

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    177

    Re: Pannello apri chiudi

    Originariamente inviato da [kattivo]

    Infine all'interno di stage c'è (istanza_puls_menu) con azione:
    codice:
     istanza_puls_menu.onRelease = function(){ 
    if(!a){ 
    _root.istanza_menu.play() 
    _root.istanza_menu.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.istanza_menu.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    Infine all'interno di stage c'è (istanza_puls_control) con azione:
    codice:
     istanza_puls_control.onRelease = function(){ 
    if(!a){ 
    _root.controlvolume.play() 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    L'avevo scritto bene il code! Perchè tu hai scritto una cosa diversa nella prima riga per l'mc istanziato controlvolume ?! :master:
    "E d'un tratto capii che il pensare è per gli stupidi, mentre i cervelluti si affidano all'ispirazione!"

  6. #6
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Stavo ritoccando il post mentre tu scrivevi e non hai potuto leggere l'aggiunta. Ora puoi.
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    177
    Ti ringrazio molto per il tuo intervento e per il tuo preziosissimo aiuto.
    Proverò anche con il tuo metodo (sicuramente avrò problemi, sono un novello di actionscrìpt) però vorrei capire il "perchè" non funge il 2° code postato inizialmente, a mio parere non ha senso che non funga se il 1° funge correttamente, non credi?

    Grazie per la pazienza, tanto ci risentiremo per l'inserimento dei tuoi code :tongue:
    "E d'un tratto capii che il pensare è per gli stupidi, mentre i cervelluti si affidano all'ispirazione!"

  8. #8
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398

    Re: Re: Pannello apri chiudi

    Originariamente inviato da [kattivo]
    L'avevo scritto bene il code! Perchè tu hai scritto una cosa diversa nella prima riga per l'mc istanziato controlvolume ?! :master:
    Perché in quel modo, tramite l'onRelease (se no, a che serve ?), la clip è bottonabile senza altri pulsanti.

    Siamo fuori sinc con i tempi ma ci capiremo lo stesso.

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  9. #9
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Se usi un pulsante esterno e istanziato, con il tuo primo script possono funzionare entrambi ma... alla chiusura il pannello scompare di botto. Con lo script a cui ho cambiato la prima riga ottieni due risultati in uno:

    1 - Non hai bisogno di pulsanti aggiunti.

    2 - Il pannello si richiude gradualmente così come si è aperto (effetto Windows XXXXP )

    Valuta e decidi.

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    177
    nn capisco, con:
    codice:
    controlvolume.onRelease = function(){ 
    if(!a){ 
    _root.controlvolume.play() 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe == this._totalframes){ 
    this.stop() 
    a = true 
    this.onEnterFrame = null 
    } 
    } 
    }else{ 
    _root.controlvolume.onEnterFrame = function(){ 
    if(this._currentframe > 1){ 
    this.prevFrame() 
    }else{ 
    this.onEnterFrame = null 
    a = false 
    } 
    } 
    } 
    }
    come azione sul pulsante nn accade niente..

    grazie per la pazienza, ma desidero solo capire
    "E d'un tratto capii che il pensare è per gli stupidi, mentre i cervelluti si affidano all'ispirazione!"

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.