Visualizzazione dei risultati da 1 a 4 su 4

Discussione: preload di swf unico

  1. #1

    preload di swf unico

    Salve da un po utilizzo FDT e l' sdk di flex per compilare le mie classi.

    creo un solo file swf.

    la domanda è.. come faccio a creare un preload ? perchè è come se tutto fosse sul primo frame o sbaglio?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ti suggerisco l'uso di un file di preload esterno, che a fine caricamento faccia la sostituzione della sua timeline con quella del filmato principale che ha caricato.
    Io lo faccio abitualmente e per questo mi sono creato una classe che gestisce questa cosa, anche se devi considerare che utilizzo flashdevelop con progetti as3 e non flex.
    Se non sbaglio comunque la classe in questione può essere gestita tranquillamente anche in un mxml come "main class".
    Codice PHP:
    package {
        
    import flash.display.Loader;
        
    import flash.display.Sprite;
        
    import flash.events.Event;
        
    import flash.events.ProgressEvent;
        
    import flash.net.URLRequest;
        public class 
    StagePreload extends Sprite {
            public function 
    StagePreload ():void {
                if (
    stageinit();
                else 
    addEventListener(Event.ADDED_TO_STAGEinit);
            }
            private function 
    init (evt:Event null):void {
                
    removeEventListener(Event.ADDED_TO_STAGEinit);
                var 
    loader:Loader = new Loader();
                
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESSprogress);
                
    loader.contentLoaderInfo.addEventListener(Event.COMPLETEcomplete);
                
    loader.load(new URLRequest("filmato_principale.swf"));
            }
            private function 
    progress (evt:ProgressEvent):void {
                
    trace ((Math.floor((evt.bytesLoaded/evt.bytesTotal)*100))+"%");
            }
            private function 
    init (evt:Event):void {
                var 
    loader:Loader evt.target as Loader;
                
    stage.addChildAt (loader.contentstage.numChildren-1);
                
    stage.removeChild (this);
            }
        }

    Ovviamente nella funzione progress, al posto del trace ci metti quello che vuoi, una barra di caricamento o un testo a percentuale.

  3. #3
    E mi assicuri che il filmato principale sarà come se fosse la root nel senso lo so che non esiste più il concetto di root in as 3.0 ma per intenderci mi posso riferire a stage tranquillamente?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sì, diciamo che sarebbe come fare un loadMovieNum sul livello 0 con il vecchio linguaggio. in pratica la timeline del _level0 (o _root) viene sostituita con quella del filmato esterno.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.