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

    problema con comandi customizzati per video

    volevo porvi un problema che da solo non riesco a risolvere, sperando di avere qualche consiglio.

    inizio descrivendo quello che dovrebbe essere:
    una pagina flash in cui una barra di comandi carica diversi filmati esterni all'interno di un contenitore.
    questi filmati hanno comado di play e gestione sonoro customizzati, e per motivi di spazio devono essere posti sopra il filmato ma devono comparire solo quando si passa con il mouse sopra una certa zona (fascia in basso del filmato).

    riesco a fare tutto tranne quest'ultima parte, ho provato a creare un pulsante vuoto con zona attiva nella zona interessata che onrollover attiva un mc con all'interno i comandi ma quando vado su questi salta tutto. è possibile bypassare questo problema?
    si potrebbe anche posizionare i tasti sullo stage principale (quello dove è presente il contenitore che carica i filmati) ma dovrebbero comandare tutti i filmati che vengono caricati esternamente, in questo caso potrebbe essere utile sapere che i vari filmati hanno tutti lo stesso nome istanza all'inteno dei loro swf.

    grazie per l'eventuale collaborazione
    se servisse sapere come sono strutturati gli as nel flash chiedete pure.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Intuisco dove possa essere il problema che descrivi..
    ho provato a creare un pulsante vuoto con zona attiva nella zona interessata che onrollover attiva un mc con all'interno i comandi ma quando vado su questi salta tutto. è possibile bypassare questo problema?
    ..ma a scanso di equivoci, potresti specificare meglio cosa intendi per "salta tutto"?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    ci sono 2 pulsanti:
    1 - crea una zona attiva che onrollover attiva un mc all'interno del quale vi sono una grafica ed un secondo tasto che compaiono
    2 - il tasto (o tasti) che controllano il filmato che ha istanza "video".

    quando passo sul tasto 1 si attiva l'animazione e compare il tasto 2. quando vado sul tasto 2 si disattiva il tasto 1 scompare quindi il tasto 2.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok, era quello che avevo immaginato.
    Ovviamente è un problema di priorità dell'interazione sui diversi pulsanti.
    Quando passi sul pulsante 2, che sta ad un livello superiore rispetto al pulsante 1, avviene il rollOut del pulsante 1.

    Puoi risolvere in vari modi.
    Secondo me potresti utilizzare una variabile di controllo che venga impostata su ciascun pulsante e un timer, attivato al rollOut, con una condizione che verifichi poi lo stato della variabile.

    Ti posto un esempio dovrai metterlo sul primo frame e istanziare adeguatamente ciascun pulsante:
    Codice PHP:
    // definisco le variabili
    var isOver false;
    var 
    timer;
    // funzione richiamata per abilitare o disabilitare i pulsanti di controllo
    function showControls(v) {
        
    pulsante_a._visible v;
        
    pulsante_b._visible v;
        
    pulsante_c._visible v;
    }
    // funzione richiamata quando passo sopra un qualsiasi pulsante 
    function over() {
        
    // abilito i pulsanti se non sono già abilitati
        
    if (!isOver) {
            
    isOver true;
            
    showControls(true);
        }
    }
    // funzione richiamata quando esco da un qualsiasi pulsante 
    function out() {
        
    isOver false;
        
    // imposto un timer che esegue una verifica dopo 2 secondi 
        // se non sono più sopra nessun pulsante allora disattivo i pulsanti di controllo
        
    clearTimeout(timer);
        
    timer setTimeout(function () {
            if (!
    isOver) {
                
    showControls(false);
            }
        }, 
    2000);
    }
    // associo gli eventi alle relative funzioni
    zona_attiva.onRollOver over;
    pulsante_a.onRollOver over;
    pulsante_b.onRollOver over;
    pulsante_c.onRollOver over;
    zona_attiva.onRollOut zona_attiva.onReleaseOutside=out;
    pulsante_a.onRollOut pulsante_a.onReleaseOutside=out;
    pulsante_b.onRollOut pulsante_b.onReleaseOutside=out;
    pulsante_c.onRollOut pulsante_c.onReleaseOutside=out;
    // disabilito i pulsanti di controllo
    showControls(false); 
    L'ho commentato ma se ci sono parti che non ti sono chiare fammi sapere.
    Ovviamente lo dovrai poi adeguare alla tua applicazione.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    ok ho provato, come idea mi sembra perfetta quella che mi hai proposto.
    ma probabilmente sbaglio da qualche parte perchè tutto rimane come prima.

    allora cos'ho fatto:
    ho creato un pulsante che serve solo come zona attiva, con nome istanza (copiato ed incollato dal codice) zona_attiva.
    nello stato sopra di questo pulsante vi è un mc con all'interno i comandi (che sono proprio 3!) rispettivamente istanziati pulsante_a/_b/_c.

    nel primo frame della scena principale ho inserito il codice che mi hai dato comprensivo di commenti.
    nella scena principale vi è un solo frame e tre livelli: il codice, la zona attiva ed il filmato.
    hai capito cosa sto sbagliando?

    grazie mille per l'aiuto che mi stai dando

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    ok..
    Hai scritto che i pulsanti stanno dentro un mc, dovrai quindi specificare, nello script, il percorso completo.

    Queste però sono le basi di ActionScript, dovresti saper richiamare un'istanza annidata in un'altra.

    Supponendo si abbia l'istanza "controlli" in cui hai i tuoi pulsanti, dovrai di conseguenza specificare:
    codice:
    controlli.pulsante_a;
    controlli.pulsante_b;
    ..ecc
    Puoi ottimizzare il tutto in questo modo
    Codice PHP:
    // definisco le variabili
    var isOver false;
    var 
    timer;
    // funzione richiamata per abilitare o disabilitare l'istanza controlli
    function showControls(v) {
        
    controlli._visible v;
    }
    // funzione richiamata quando passo sopra un qualsiasi pulsante
    function over() {
        
    // abilito i pulsanti se non sono già abilitati
        
    if (!isOver) {
            
    isOver true;
            
    showControls(true);
        }
    }
    // funzione richiamata quando esco da un qualsiasi pulsante
    function out() {
        
    isOver false;
        
    // imposto un timer che esegue una verifica dopo 2 secondi
        // se non sono più sopra nessun pulsante allora disattivo i pulsanti di controllo
        
    clearTimeout(timer);
        
    timer setTimeout(function () {
            if (!
    isOver) {
                
    showControls(false);
            }
        }, 
    2000);
    }
    // associo gli eventi alle relative funzioni
    zona_attiva.onRollOver over;
    zona_attiva.onRollOut zona_attiva.onReleaseOutside=out;
    with(controlli) {
        
    pulsante_a.onRollOver over;
        
    pulsante_b.onRollOver over;
        
    pulsante_c.onRollOver over;
        
    pulsante_a.onRollOut pulsante_a.onReleaseOutside=out;
        
    pulsante_b.onRollOut pulsante_b.onReleaseOutside=out;
        
    pulsante_c.onRollOut pulsante_c.onReleaseOutside=out;
    }
    // disabilito l'istanza controlli
    showControls(false); 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    eh eh mi hai beccato, sono un neofita degli as; oltretutto faidate a tempo perso anche se l'argomento mi affascina molto. per cui alcune basi mi mancano.
    detto questo ti ringrazio per l'aiuto ma devo dire che mi dà ancora un problema. ho istanziato il mc con "controlli" ho inserito il nuovo codice ma mi dice:
    "Errore: un'azione 'with' non è riuscita perché l'oggetto specificato non esiste."
    eppure il mc istanziato c'è.
    Non pretendo che tu faccia il lavoro per conto mio, quindi cercherò di imparare meglio gli actionscript e risolvere il mio problema che probabilmente anche in questo caso risiede in una mia mancanza. Ti ringrazio sia per l'aiuto e per l'idea sul come risolvere il mio problema.

    grazie e ciao
    Cybernonno

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    No problem, siamo qui per imparare.

    L'errore che ti viene dato è riferito all'istanza "controlli" che probabilmente non riesce a trovare.

    Le cause possono essere diverse.
    Dovrai giusto fare qualche controllo per capire dove sta il problema.

    Controlla che tu abbia istanziato bene quel clip.
    Giusto per chiarire, il nome istanza non è quello che dai all'oggetto nella libreria, lo devi specificare dal pannello "Proprietà" nella relativa casella <Nome istanza> una volta che piazzi l'istanza sullo stage.
    Questo è uno dei classici errori da principianti, ovviamente senza offesa.

    Assicurati che il nome istanza sia corretto e coincida esattamente con quello indicato nello script anche per maiuscole e minuscole. Ad esempio "controlli" è differente da "Controlli".

    Analogamente controlla che non ti sia scappato qualche spazio nella casella <Nome istanza> mentre digitavi... questo è un errore ricorrente anche tra i meno principianti perchè solitamente è uno di quegli errori che si nascondono abbastanza bene e fanno perdere ore di sonno.

    Assicurati di aver posto lo script, nel caso specifico, in un frame dello stage principale e che l'istanza "controlli" si trovi anch'essa sullo stage principale e non dentro qualche altro clip. Questo perché i percorsi indicati sono relativi, cioè fanno riferimento alla specifica istanza in base al punto da cui viene eseguito lo script.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.