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

    FlashCS5 - Problema con caricamento azioni in blocco di frame

    Salve sono nuovo e spero di aver scritto nella sezione giusta;

    premettendo che mi affaccio a flash per al prima volta con la necessità di creare una presentazione la cui struttura necessita che ogni pagina sia raggiungibile da un menù per argomenti, ma che allo stesso tempo da ogni pagina possa raggiungere quella successiva, a volte solo dopo aver portato a termine delle azioni specifiche.

    Ora io ho creato la mia presentazione in un'unica scena, assegnando ai frame le varie pagine.

    succede però che le azioni vengano caricate solo ed esclusivamente se io carico il primo frame del blocco a cui sono assegnate, ma se io salto direttamente al secondo frame del blocco, suddette azioni non vengono caricate.

    Mi spiego meglio con un esempio, io il sul frame 0 ho un menù di 5 elementi, al frame 1 e 2 ho un pulsante continua per andare avanti, al frame tre comapare il pulsante continua solo dopo aver cliccato su un altro elemento, al frame 4 ho di nuovo il continua per andare al 5.

    Ora io do le azioni dal frame 0 definendo il pulsante continua e che se lo clicco vado al frame successivo, e definisco i bottoni del menù perché ognuno mi porti ad un frame specifico.

    qui mi succede il pastrocchio perché se io clicci sul menù il link che mi porta al frame 4 il tasto continua smette di funzionare, ugualmente se io allora torno indietro al frame 1, il tasto che prima funzionava, smette di funzionare.

    Facendo varie prove ho notato che le azioni che impartisco mi vengono caricate solo se io faccio partire il frame che corrisponde al primo su cui ho inserito le azioni del mio blocco, ma se già faccio patire dal secondo frame del blocco le azioni, pur essendo presenti non vengono caricate.

    Qualcuno di voi mi può illuminare, o come temo l'unica soluzione è scrivere il codice per ogni frame, specificando oggetti e funzioni con nomi diversi per non avere identità?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Metti tutti i pulsanti ne frame1, scusa ma il frame 0 non esiste, sia il menu che quelli per l'avanzamento frame per frame, in un livello dedicato solo a loro, sempre in un livello dedicato del primo frame scrivi le azioni per il loro funzionamento, a questo punto se vuoi che nel frame 4 il pulsante per l'avanzamento frame per frame non funzioni, o lo rendi mouseEnabled=false, o visible=false a secondo delle esigenze e quando si preme su quel determinato elemento lo rendi mouseEnabled=true o visible=true.

  3. #3
    scusa è vero, il frame 0 non esiste mino errore, quindi in pratica spiegami se ho capito bene, io ho un layer con il pulsante continua se voglio che in un frame non compaia, non devo creare un clear frame e successivamente un altro keyframe, ma nelle azioni devo dire che l'oggetto non sia visibile su quel frame, giusto?

    quindi in pratica nel primo frame devo avere la struttura di tutti i pulsanti che compariranno in tutta la presentazione, e poi frame per frame rendo invisibili quelli che non mi servono tra le azioni?

    Io avevo risolto per il continua creando un movieclip con all'interno il pulsante e un layer azioni che dicesse di andare nel frame successivo del livello precedente, nel mio caso il root della presentazione.

    però poi mi si è presentato un problema con domande a risposta corretta multipla che possono essere fornite in ordine diverso e solo quando tutte le risposte giuste sono state date si può andare avanti, e in effetti scrivendo il codice per ogni frame già con tre risposte esatte su sette possibili avevo da scrivere per due giorni!

    Grazie mille per la risposta gentilissima, scusa se non ho un lessico appropriato ma è il mio 5 giorno di flash e cerco di arrangiarmi
    Ultima modifica di Saeheris; 11-11-2015 a 13:27

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Esatto, tieni presente che con flash ci sono diversi modi per ottenere il medesimo risultato in fase di runtime, se scrivi il codice che implementa tutti i pulsanti sul frame 1 , come sarebbe corretto in as3, tutti i pulsanti devono essere istanziati sul frame 1 altrimenti ti da errore, poi via via che servono li rendi visibili o se sono disabilitati li abiliti, ciò non toglie che puoi scrivere codice anche nei frame successivi anche se poco elegante, diciamo che così sarebe più un approccio da as2 comunque funziona lo stesso.

  5. #5
    perfetto grazie! non sai che mondo mi hai aperto!

    si concordo con te che scrivere le azioni su ogni frame sia una schifezza colossale, soprattutto in fase di debug o modifica.

    figurarsi se sul codice ci mette le mani più di una persona...

    Ottimo,adesso capisco perfettamente perché mi dava l'errore, non avendo istanziato gli oggetti nel primo frame, al caricamento delle azioni, all'oggetto che compare dopo non veniva attribuita l'azione necessaria, però in termini di sintassi il debug automatico non me lo trova perché cmq non c'erano problemi di identità, ripetizioni od oggetti di riferimento nulli.

    Grazie ancora!

    ps.: la soluzione che ho utilizzato io con il pulsante continua è "scorretta"? nel senso potrebbe creare problemi oppure è una soluzione valida? perché la mia idea nell'utilizzare questa soluzione era di creare un bottone a se stante che ovunque lo metto mi faccia sempre la sua funzione indipendentemente da tutto il resto, in previsione di modifiche future o di altre presentazioni che richiedano uguale grafica.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Cioè scrivere il codice dentro il movieclip? Se puoi evitarlo è meglio, si usava molto ai tempi di as2. Scriviti due funzioni una che renda invisibile il btn continua e una che lo renda visibile, e quando occorre richiami la funzione scrivendo semplicemente il nome seguita da (),
    dentro la funzione metti una condizione if
    codice:
    function btn_invisibile()
    {
    if(currentFrame==4){btn_continua.visible=false}
    }

  7. #7
    capito, quindi conviene sempre lavorar tutto sulle azioni sempre al livello di root!

    perfetto!

    grazie mille veramente!

    ora non mi resta che studiarmi un po' delle possibili funzioni che posso scrivere con as3

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Si esatto sempre sulla root è possibilmente non sparso per la root, sono molto arruginito perchè purtroppo flash èstato fatto fuori ma se hai problemi posta che se sono in grado ti do una mano.

  9. #9
    eh si lo so che è un pò obsoleto, ma hanno richiesto flash, e devo ammettere che avere un programma che mi aiuta a dare un'infarinatura mi ha reso più facile destreggiarmi che i miei tentativi per ora poco fruttuosi con html5.

    Grazie ancora per la disponibilità!

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.