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

    Navigazione AS nelle presentazioni in flash

    Salve!

    Per la discussione della mia tesi di laurea devo preparare, naturalmente, delle slide e pensavo di farle in Flash (molto più carine e dinamiche). Non ho mai usato la presentazioni in flash, ma ho visto che è possibile creare delle diapositive tipo powerpoint e si scorre tramite le frecce.

    Però ora ho qualche problema...

    1. Come realizzo un menù per saltare ad una specifica diapositiva? Sono dei semplici movieclip con associati all'evento onclick una serie di gotoandplay....ma gotoandplay dove? come gli dico di andare alla diapositiva X? come si chiama la diapositiva X?

    2. Con le frecce è possibile saltare tra una diapositiva all'altra. Ma supponiamo che io volessi controllare con un altro tasto, ad esempio la barra spaziatrice tanto per dirne una, la navigazione all'interno di un set di sottodiapositive nidificate (per animazioni dilazionate da far scattare "a comando")? Se è troppo un casino è meglio non nidificare le diapositive, ma creare un'unica diapositiva-flusso con le sottoanimazioni disposte sequenzialmente in unica diapositiva-scena e tanti stop() seguiti da gotonextframe() e play() controllati da un handler da tastiera? (come una qualunque flash per capirci) Più semplice ma secondo me è facile incasinarsi...

    qualche idea?

    gabrio
    Gabriele B. - http://9thcircle.it

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    non le ho mai usate, ma le presentazioni in AS vengono gestite attraverso la classe Slide che prevede metodi per spostarsi tra le varie schermate ecc...

  3. #3
    mille grazie, era proprio quello che mi serviva

    adesso però ti pongo un'altra domanda

    ho installato un listener di eventi di tastiera che quando si preme il tasto freccia giu', il player va in gotoAndPlay al frame successivo. Ho fatto qualcosa del tipo:

    keyContesto = new Object();
    keyContesto.onKeyDown = function() {
    if (Key.getCode() == 40) {
    _level0.presentazione.corpo.contesto.gotoAndPlay(_ level0.presentazione.corpo.contesto._currentframe + 1);
    }
    };
    Key.addListener(keyContesto);

    (lo uso per dividere ogni diapositiva in una serie di "sottodiapositive" cosi' da spezzare le animazioni con degli stop() in punti opportuni e riprenderli con la pressione del tasto)

    ora, come è immaginabile devo creare un handler di eventi per ogni diapositiva perché, pur avendo questi sempre lo stesso effetto (il gotoAndPlay) i contesti sono diversi. Se ad esempio in questa diapositiva devo referenziare con _level0.presentazione.corpo.contesto, nella successiva devo referenziare con _level0.presentazione.corpo.obiettivi ecc.

    c'è un modo, insomma, per ottenere un riferimento assoluto, così da installare un solo handler che abbia "validità" universale per tutte le diapositive?
    Gabriele B. - http://9thcircle.it

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    dipende dall'entità del cambiamento, se deve cambiare solo quel riferimento, puoi settare una variabile globale da modificare a seconda della diapositiva in cui ti trovi, e usando la sintassi delle parentesi quadre (accesso agli elementi come se fossero elementi di un array associativo) puoi fare così

    codice:
    keyContesto = new Object();
    keyContesto.onKeyDown = function() {
    if (Key.getCode() == 40) {
    _level0.presentazione.corpo[_root.variabile].gotoAndPlay(_level0.presentazione.corpo.contesto._currentframe + 1);
    }
    };
    Key.addListener(keyContesto);
    dove la variabile in rosso porta il nome del riferimento sotto forma di stringa, ad esempio nel primo caso la variabile va settata con:
    codice:
    _root.variabile = "contesto";
    e così via

  5. #5
    ottima idea! nn ci avevo pensato!

    stavo, più per curiosità che altro a dire la verità, realizzando una classe apposita TheClueSlide da associare alle slides (ho visto che è possibile farlo direttamente esattamente come se fossero degli oggeti MovieClip), ma una cosa che non ho mai imparato a fare è proprio assegnare un handler di eventi all'interno della definizione dei metodi di classe.

    Se ci riuscissi sarebbe proprio la soluzione più elegante possibile: potrei aggiungere tutte le slides del mondo (associate alla classe TheClueSlide) senza dover cambiare una virgola di AS...
    Gabriele B. - http://9thcircle.it

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    dipende a quale classe lo devi associare, in generale però puoi fare tranquillamente una cosa del genere, in una classe AS2
    Codice PHP:
    class TheClueSlide {
        private var 
    __obj:Object;
        function 
    TheClueSlide () {
            
    __obj = new Object();
            
    __init__();
        }
        private function 
    __init__ () {
            
    __obj.onKeyDown __keydown__;
            
    Key.addListener(__obj);
        }
        private function 
    __keydown__ () {
            
    // azioni che vuoi
        
    }


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.