Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema con preload

  1. #1

    problema con preload

    ciao a tutti

    uso flash 8 pro,

    ho un problema con un swf da 732KB e il suo preload:

    l'swf incriminato è un piccolo sito che richiama al suo interno, tramite loadmovie, altri swf o che fa degli attachmovie di mc presenti in libreria e che all'inizio fa un preload.. nulla di strano se non fosse che quando lo vado a visualizzare, il preload, parte da dopo il 50% del caricamento (fino a qul punto non si visualizza la classica barretta di caricamento).

    Il codice relativo al preload è il seguente:

    codice:
    lBytes = _root.getBytesLoaded();
    trace("dimensione caricata = "+lBytes)
    tBytes = _root.getBytesTotal();
    trace("dimensione totale = "+tBytes)
    trace("--------------------------")
    percentLoaded = Math.floor((lBytes/tBytes)*100);
    loader.bar._xscale = percentLoaded;
    loader.percent.text = percentLoaded + "% of " + Math.floor(tBytes/1024) + "K loaded.";
    if (lBytes>=tBytes && tBytes>0) {
    	if (count>=12) {
    		gotoAndStop("main");
    	} else {
    		count++;
    		gotoAndPlay("preload");
    	}
    } else {
    	gotoAndPlay("preload");
    }
    Per trovare il problema ho fatto una piccola stampa in output della dimensione in byte totale caricata (tBytes) e..
    svelato l'arcano, questa risulta essere di 1303248 byte invece che 732k!!


    Qualcuno ha già riscontrato questo problema?

    Grazie!!
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    http://flash-mx.html.it/faq/view_faq.asp?idcat=9&id=94

    Per quanto riguarda il preloader che parte in ritardo, le cause sono molte, generalmente:

    1. preloader troppo pesante
    2. uso massiccio di oggetti esportati nel frame 1
    3. classi esportate nel primo frame

  3. #3
    ciao negatyve!.. ho letto la FAQ che mi hai indicato e ho controlloto nel .fla se c'era qualcosa che si scontra con le tue osservazioni ma... nulla!.. nella frame 1 c'è solo una "minuscola" barretta e il codice (il filamto "pesante", ovvero quello per cui metto il preload, rimane sulla frame 10 all'etichetta "main").

    Come posso eliminare l'effetto sgradevolissimo di pagina "vuota"... ho fatto anche un'altro filmato vuoto (è presente solo il preload) che ha la sola funzione di caricare con un loadmovie, l'swf incriminato ma, nulla da fare.. l'effetto è lo stesso!

    Spero tanto in qualche idea perchè dalla mia parte del pc non è rimasto altro che il deserto!!!

    Grazie!
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  4. #4
    up
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  5. #5
    chiedo perdono.. ma ora ho capito che il problema è proprio quello da te indicato nega.. ovvero:


    uso massiccio di oggetti esportati nel frame 1 !!

    A parte che non ho capito cosa significhi e mi piacerebbe molto se mi dicessi cosa significa avere nelle proprietà del concatenamento degli oggetti in libreria, aver il flag su "esporta nel primo fotogramma"..

    cmq.. non sapendo cosa significa ho lasciato il flag solo su "esporta per actionscript" e ho tolto gli altri.. ora il preload funziona.. ma non va più il resto!.. ovvero non vengono più caricati gli mc di libreria.

    Che fare?!

    grazie
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Ti spiego. Esportare un oggetto della libreria per actionscript significa che:

    1. quando si tratta di un movieclip, puoi attaccarlo con l'attachMovie
    2. quando si tratta di un suono, puoi eseguirlo con attachsound

    Perchè questo sia possibile fin dal primo frame del filmato, questi oggetti devono essere esportati all'inizio del filmato stesso (invalidando il preloader, visto che vengono caricati prima). Se togli il flag "esporta nel primo frame", dal momento che non sono fisicamente presenti nel filmato da nessuna parte, non vengono proprio esportati, con la conseguenza che il filmato non funziona più.
    Per coniugare le due cose, fai così:

    - supponiamo che il tuo preloader sia nei primi due frame del filmato, e che dal terzo parta l'applicazione vera e propria
    - crea un nuovo frame vuoto tra i primi due e il terzo, in modo da avere:

    --- primo frame preloader
    --- secondo frame preloader
    --- terzo frame vuoto
    --- quarto frame applicazione

    - togli il flag "esporta nel primo frame" a tutti gli oggetti con il concatenamento, quindi trascinane un'istanza nel frame 3 (quello vuoto)

    In questo modo, gli oggetti vengono esportati (sono fisicamente nel filmato), puoi utilizzarli con actionscript (sono esportati per actionscript), ma vengono caricati dopo il preloader (sono nel terzo frame).
    L'unica cosa a cui devi stare attento è di mandare la testina di riproduzione, dopo il preloader, al frame 4, altrimenti gli oggetti del frame 3 appaiono tutti assieme.

  7. #7





    Dal momento che sarete indaffaratissimi e che immagino che qualcun'altro come me fosse all'oscuro della problematica provo ad autorispondermi:

    usando degli attachMovie o attachSound occorre che le proprietà di concatenamento degli oggetti in libreria siano impostate su: esporta per action script e nel primo frame.

    Questo in termini pratici, fa si che in fase di linkage questi oggetti vengano posizionati tutti in un frame fittizio che coincide con la prima frame della timeline senza che gli oggetti stessi siano visibili.

    Su questo frame fittizio che indico impropriamente con frame 0, i movieclips, prendono la priorità su qualunque altra cosa in fase di caricamento, preloader compreso.

    Questo significa che quando si andrà a "lanciare" il nostro file swf, il preload partirà solo dopo che tutti gli oggetti esportati sul primo frame saranno caricati.

    Le possibili soluzioni sono:

    - Utilizzare swf esterni alla libreria da caricare nel nostro filmato.

    - Non spuntare la voce "carica al primo frame" e mettere il clip concatenato su un frame rendendolo invisibile..


    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

  8. #8
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    C'hai messo venti minuti a rispondere (mentre nel frattempo ti rispondevo io)?

  9. #9
    hehe.. che mongolo che sono ... bhe... almeno adesso è tutto chiaro.. grazie come sempre per l'aiuto nega!!!
    cammino, cammino fumando,
    e ad ogni passo,
    attraverso il mio fumo,
    mi trovo dove non ero prima,
    sono dove prima espiravo.

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.