Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89

    script full browser e preloader

    Salve a tutti, non ho dimestichezza con as3, ma mi trovo a dover aggiungere un preloader ad un file swf che mi funge da sfondo per un sito in ajax (all'interno ho un video che si spalma su tutta al finestra).

    Il codice del preloader che vorrei aggiungere al 1° fotogramma è questo:

    Codice PHP:
    import flash.display.*;

    this.stop();

    this.loaderInfo.addEventListener(ProgressEvent.PROGRESSPL_LOADING);

    function 
    PL_LOADING(event:ProgressEvent):void {
        var 
    pcent:Number=event.bytesLoaded/event.bytesTotal*100;
        
    lbar.scaleX=pcent/100;
        
    lpc.text=int(pcent)+"%";
        if(
    pcent==100){
            
    this.gotoAndPlay(2);
        }

    Il problema è che il file fla che dovrebbe accogliere questo preloader è strutturato nel seguente modo:
    Nella root principale c'è un fotogramma. Nel primo fotogramma c'è un mc. Dentro questo movieclip c'è il mio video in .flv che funge da sfondo.

    In altri casi mi è bastato far slittare di un fotogramma in avanti i contenuti e piazzare al primo fotogramma il mio preloader. Ma questo è stato possibile con animazioni semplici che si sviluppavano tutti sulla root principale. Ora se faccio slittare al fotogramma n° 2 il mc con all'interno il video flv e incollo il preloader nel primo fotogramma ricevo questo errore:
    Codice PHP:
    TypeErrorError #1009: Cannot access a property or method of a null object reference.
        
    at Main/init()
        
    at Main() 

    L'actionscript del full browser è il seguente:
    Codice PHP:
    package
    {
        
    import flash.display.MovieClip;
        
    import flash.text.TextField;
        
    import flash.events.Event;
        
        public class 
    Main extends MovieClip
        
    {
            public function 
    Main()
            {
                
    init();
                
                
    checkResize();
            }
            
            private function 
    init():void
            
    {
                
    stage.frameRate=31;
                
                
    bg_mc.x=0;
                
    bg_mc.y=0;
                
    bg_mc.width=stage.stageWidth;
                
    bg_mc.height=stage.stageHeight;
                
                
    clip_mc.x=stage.stageWidth/2;
                
    clip_mc.y=stage.stageHeight/2;
                
                
                
    footer.x=100;
                
    footer.y=stage.stageHeight-53;
            }
            
            private function 
    checkResize():void
            
    {
                
    stage.addEventListener(Event.RESIZEresizeStage);
            }
            
            private function 
    resizeStage(event:Event):void 
            
    {
                
    init();
            }
        }

    Mi sapete dare una mano? grazie...

  2. #2
    la cosa più semplice che puoi fare è unire il codice e passare alla funzione init() solo quando il caricamento è completo

    l'errore che ti da è perchè lui prova subito a cercare gli oggetti ma questi non sono ancora stati caricati(sono sul fotogramma successivo)
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89
    grazie.

    Un dubbio: ma se passo alla funzione che mi determina il full browser dopo il preload, cioé nel 2° fotogramma, il contenuto del primo fotogramma (il rpeload nel mio caso) non verrà caricato a tutto browser. o mi sbaglio?

    E se mi sbaglio, cosa che per altro mi auguro, come posso fare a passare alal funzione init() dopo il caricamento?

    grazie 1000

  4. #4
    putroppo nn ti sbagli
    ed infatti il preload serve a quello

    nn ci sono soluzioni perchè se aspetti che lui adatti il contenuto alla pagina significa che ha caricato tutto e quindi il preload non ha più senso

    puoi usare questo sistema

    fai partire il preloader a centro pagina usando

    stage.stageWidth;
    stage.stageHeight;

    per centrarlo

    e per passare alla funzione init() dopo aver unito e sistemato il codice metti

    if(pcent==100){
    initi();
    }

    al posto di

    if(pcent==100){
    this.gotoAndPlay(2);
    }
    Photogallery Flash Gratis - http://www.flashfiles.biz -
    Template in Flash con pannello di Amministrazione e deeplinking Guarda il template qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    89
    Originariamente inviato da morfina
    ...passare alla funzione init() dopo aver unito e sistemato il codice metti

    E' quel "dopo aver unito e sistemato il codice" che mi mette in difficoltà!
    Qualche anima gentile che mi sa dire come sistemare e unire il codice?

    graaazie.

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.