Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    2

    Flash CS4: doppio menu a tendina

    Salve a tutti,
    lo so che il titolo non è per niente chiaro; spero di riuscire a spiegarmi meglio nel seguente post.

    Procedo a spiegare quello che ho intenzione di fare. Sono uno studente e sto lavorando su di una potenziale applicazione Air che avrà un'unica interfaccia finalizzata a mostrare un confronto a due.

    Per far ciò, ci sarà una schermata divisa in tre.
    Una parte di interfaccia fissa con due menu a tendina, dai quali si potranno scegliere i due elementi da mettere in confronto. A seconda degli elementi scelti nei menu a tendina cambieranno le due parti di interfaccia restanti (immagine allegata).

    Il mio problema è che, per ora, tutto questo meccanismo è pura fantasia. La mia preparazione in Flash (disegno, animazioni e poco action script) non mi permette nemmeno di immaginare come possa essere svolto questo lavoro e, di conseguenza, mi trovo qui, ora, a scrivere questo post per chiedervi con quali modi si possa fare o se potete fornirmi le fonti dove poter studiare, dove prendere l'action script corretto, cosa posso ricercare nel web, o in questo forum, al fine di poter realizzare suddetto lavoro.

    Vi ringrazio moltissimo dell'attenzione. ...Torno a spulciare il forum e il web.
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Quelle che chiami "schermata mobile" potrebbero essere 2 MovieClip vuoti che farebbero da contenitore per immagini o filmati.swf importati dall'esterno, oppure, essendo un'applicazione non destinata al web e pertanto non ci sono problemi di pesantezza del file, potresti inserire i contenuti che ti servono direttamente sulla timeline dei MovieClip.

    Con i pulsanti del menù vai a gestire la timeline o caricamento file esterni.

    Il progetto non è particolarmente difficile da concretizzare ma è necessario un minimo di conoscenza sulla creazione di un menù, sulla gestione della timeline o caricamento e importazione di file esterni.

    Puoi trovare in rete molti file di esempio per fare un menù a tendina e tutto il resto ed eventualmente se hai problemi specifici, fatti sentire e probabilmente qui trovi qualche suggerimento utile per risolvere.


    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    2

    Grazie mille ma sopraggiunge un problema!

    Grazie mille Sleter! Risposta utilissima!

    Sono riuscito a fare i menu! Il tuo consiglio mi ha reso chiara la struttura che dovesse avere il mio progetto.
    Ho aspettato a rispondere per vedere se tutto andava bene e, a dire il vero, ora ho un problemino che però riguarda tutt'altro. Inizialmente ero riuscito a metterlo a posto ma poi modificando una cosa è tornato!


    Sulla timeline principale ho due frame che corrispondono a due schermate, due movieclip.
    Sul primo frame ho un bottone (avvia_btn) che ha gotoAndStop(2) e funziona.
    Sul secondo frame ho un bottone (home_btn) che ha gotoAndStop (1) e crea problemi.

    L'errore risultante è questo: TypeError: Error #1009 Cannot access a property or method of a null object reference. [...]

    Ho indagato sul web ma non riesco a risolvere il problema. Ho provato a mettere tutto l'as sul primo frame, ho provato a mettere un as sia sul primo che sul secondo frame. Ho provato a mettere l'home_btn anche sul primo frame nascondendolo per poi farlo apparire al secondo ma nulla.
    Dove sbaglio?

    Sennò, se volessi mettere questi due bottoni all'interno dei rispettivi movieclip, come posso fare in modo che essi gestiscano la timeline principale e non quella del mc in cui stanno?

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    L'errore che riscontri si verifica quando nel codice si fa riferimento a una proprietà o un metodo che non è presente nel fotogramma con il codice e presumo che stai programmando in ActionScript 3.0.

    In questo caso, evita per quanto è possibile di sparpagliare codice sulle timeline dei MovieClip e cerca di mettere tutto il codice nel primo fotogramma del filmato, compresi gli oggetti a cui fa riferimento.

    Se uno o più di questi oggetti non vuoi che sia visibile da subito il metodo nomeOggetto.visible = false; per poi impostarlo su true quando ti serve, va benissimo, oppure puoi posizionarlo al di fuori dell'area visibile dello stage e dargli una nuova posizione x e y da codice, quando ti serve ma è importante che in ogni caso, l'oggetto sia presente con il suo <Nome istanza> con cui da codice fai riferimento.

    In pratica nel tuo progetto dovresti avere nel primo fotogramma della timeline principale, 2 MovieClip costituiti da una loro timeline con un'immagine in ogni fotogramma e uno stop(); sul primo fotogramma.
    Li posizioni sullo stage con il loro nome istanza ad esempio: 'clip1' e 'clip2'.

    I pulsanti a tendina dovrebbero essere istanze di simboli MovieClip con altri MovieClip annidati al loro interno.
    Dal codice AS3 fai riferimento ad ogni singolo clip annidato con la classica sintassi del punto, ad esempio:

    Il tuo MovieClip ha <Nome istanza> : menu1.
    I MovieClip annidati al suo interno hanno <Nome istanza> : subMenu1, subMenu2, subMenu3 ecc...

    Per fare riferimento a uno qualsiasi di questi subMenu lo richiami con:

    Codice PHP:
    menu1.subMenu1.addEventListener(MouseEvent.CLICKcambiaSchermataClip1);

    function 
    cambiaSchermataClip1(evento:MouseEvent):void 
    {
    clip1.gotoAndStop(2);

    Ovviamente questo è solo un esempio di come da un clip annidato puoi interagire con un altro clip presente sullo stage.
    E' importante sapere che lo stage 'vede' e può controllare facilmente tutti gli oggetti presenti al suo interno con una gerarchia del tipo:
    padre > figlio > figlioDelFiglio ecc. (padre.figlio.figlioDelFiglio .... )
    Un pò più complesso fare il percorso inverso ovvero dal 'figlio' risalire al 'padre' e per esempio controllare la timeline principale.
    Per fare questo devi fare in modo che il 'padre' sia considerato come un MovieClip annidato e fare il percorso inverso utilizzando la proprietà 'parent' che ti permette di indietreggiare di 1 livello ad esempio:

    Sei nel MovieClip 'figlio' posizionato sullo stage principale e dal 'figlio' vuoi inviare un comando alla timeline principale.
    Nella timeline del 'figlio' inserisci il codice:

    Codice PHP:
    var timelinePrincipale:MovieClip this.parent as MovieClip

    timelinePrincipale
    .gotoAndStop(30); 
    ... e sposti la testina di riproduzione del filmato principale sul fotogramma n.30.

    Comunque ti ripeto, questo metodo funziona ma è sempre meglio e più semplice controllare tutto dalla timeline principale come ti ho suggerito nel metodo precedente.

    Ciao e Buon proseguimento


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.