Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: AS3 ProgressBar e XML

  1. #1
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586

    AS3 ProgressBar e XML

    Buon giorno

    sto cercando di far visualizzare una ProgressBar per il caricamento di un file XML ma non riesco a capire perchè mi da errore

    Codice PHP:
    import fl.controls.ProgressBar;
    import fl.controls.Label

    var dataPath:String "http://localhost/XML/mio.xml";
    var 
    loader:URLLoader = new URLLoader();
    loader.load(new URLRequest(dataPath));

    var 
    progressReport:Label = new Label();
    progressReport.move(10,30);
    progressReport.autoSize TextFieldAutoSize.LEFT;
    addChild(progressReport);

    var 
    pb:ProgressBar = new ProgressBar();
    pb.move(10,10);
    pb.source loader;
    pb.addEventListener(ProgressEvent.PROGRESS,updateProgressReport);
    addChild(pb);

    function 
    updateProgressReport(e:ProgressEvent):void {
        
    progressReport.text Math.round(pb.percentComplete) + "% Loaded";

    ERRORI:

    TypeError: Error #2007: Il valore del parametro child deve essere diverso da null.
    at flash.display:isplayObjectContainer/addChildAt()
    at fl.controls::ProgressBar/fl.controls:ProgressBar::drawTrack()
    at fl.controls::ProgressBar/fl.controls:ProgressBar::draw()
    at fl.core::UIComponent/::callLaterDispatcher()

    Grzie

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    la ProgressBar è inserita correttamente in libreria?

  3. #3
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    Si c'è, puà essere perchè sto cercando di crearla da un package?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    mmh può darsi, ma non posso dirlo con certezza, l'errore dato sembra una mancanza riscontrata sulla creazione della ProgressBar, come vedi ti dice esattamente su quali classi e funzioni a ritroso si trova l'errore

  5. #5
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    or non mi da più errore ma non mi mostra nulla

    Codice PHP:
    package {
        
    import flash.display.Sprite;
        
    import flash.events.*;
        
    import flash.net.*;

        
    import flash.display.Shape;
        
    import flash.text.*;
        
    import fl.controls.ProgressBar;

        public class 
    URLLoaderExample extends Sprite {
            var 
    myLoaderLabel:TextField = new TextField();
            var 
    pb:ProgressBar = new ProgressBar();
            public function 
    URLLoaderExample(XMLPath:String) {

                
    myLoaderLabel.text "0";
                
    myLoaderLabel.autoSize TextFieldAutoSize.CENTER;
                
    myLoaderLabel.selectable false;
                
    myLoaderLabel.mouseEnabled true;

                
    myLoaderLabel.300;
                
    myLoaderLabel.300;

                
    this.addChild(myLoaderLabel);

                var 
    _request:URLRequest = new URLRequest(XMLPath);
                var 
    _loader:URLLoader = new URLLoader(_request);
                
    pb.source _loader;

                
    pb.addEventListener(ProgressEvent.PROGRESSprogressHandler);
                
    pb.addEventListener(Event.COMPLETEcompleteHandler);
                
                
    pb.300;
                
    pb.300;
                
                
    this.addChild(pb);

            }
            private function 
    completeHandler(event:Event):void {
                
    //trace("completed");
            
    }

                    private function 
    progressHandler(event:ProgressEvent):void {
                
    trace("progressHandler loaded:" event.bytesLoaded " total: " event.bytesTotal);
                var 
    kbLoaded:String Number(event.bytesLoaded 1024).toFixed(1);
                var 
    kbTotal:String Number(event.bytesTotal 1024).toFixed(1);
                
    myLoaderLabel.text kbLoaded " of " kbTotal " KB" int(event.currentTarget.percentComplete) + "%" ;
            }
        }


  6. #6
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    ho provato a mettere il tutto nel filmato invece che in un file as ma mi si blocca

    facendo un trace di biteLoaded mi traccia correttamente passo per passo ma la barra si blocca a 50% per po andare subito al 100% è una cosa strana non è che il caricamento non funzioni è che non è graduale come dovrebe essere


    può dipendere dal fatto che carico un xml e non un' immagine?

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    mi pare abbastanza difficile, se ho capito l'xml di cui parli, penso che si tratti di un file abbastanza pesante, perciò escluderei incongruenze nella verifica delle dimensioni
    ho provato una volta ad utilizzare il componente ProgressBar, ma non ci sono riuscito, per un motivo o per l'altro si blocca o non esegue il "riempimento" graduale... detta in termini caserecci, mi pare un pacco

  8. #8
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    concordo mi sa che l'unica soluzioe a sto punto è provare con il controllo sui bytesloaded tipo:

    if (bytesloaded >= bytestotal) {
    myLabel.text = bytesloaded+" of "+bytestotal;
    }

    sperando che non si incarti anche questa ^-^

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    come mai questa condizione? se la scrivi così avverrà solo a caricamento completato ossia in "Event.COMPLETE" e non nel progresso

  10. #10
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586
    ho sbagliato a digitare

    una cosa di questo tipo

    Codice PHP:

    var myLabel:Label = new Label();
    myLabel.text "xx";
    myLabel.autoSize TextFieldAutoSize.LEFT;

    myLabel.stage.stageHeight/2;
    myLabel.= ((stage.stageWidth-150)/2)-(myLabel.width/2);
    addChild(myLabel);


    function 
    myProgress(e:Event) {
        var 
    bytestotal e.target.bytesTotal;
        var 
    bytesloaded e.target.bytesLoaded;
            
        if (
    bytesloaded <= bytestotal) {
            
    myLabel.text bytesloaded " of " bytestotal;
        }

    anche questa mi va a scatti però

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.