Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1

    as3 esterno .. errore #1009

    buondì..
    problemino:
    ho una funzione as3 esterna che non deve far altro che leggere un xml (che contene dei link a delle img) e, carichi a rotazione le immagini..

    parso l'xml e fin qui no problema,
    appena parsato l'xml richiamo la funzione caricamento() che altro non è che il loader che si occupa di caricare le img in un clip sullo stage istanziato come "sezione"
    il problema è qui, flash mi ritorna il seguente errore:


    TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
    at flyers/::caricamento()
    at flyers/::completeHandler()
    at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/flash.net:URLLoader:nComplete()





    ecco il codice:
    Codice PHP:

    package 
    {

        
    import flash.display.*;
        
    import flash.display.MovieClip;
        
        
    import flash.events.MouseEvent;
        
    import flash.events.Event;
        
    import flash.text.TextField;
        
    import caurina.transitions.Tweener;

        
    import flash.display.LoaderInfo;
        
    import flash.net.URLLoader;
        
    import flash.net.URLRequest;
        
    import flash.events.ProgressEvent;

        public class 
    flyers extends MovieClip {

            private var 
    loadProgress_txt:TextField;
            private var 
    caricatore:Loader;

            
            private var 
    s:String "test.xml";
            private var 
    r:URLRequest = new URLRequest(s);
            private var 
    l:URLLoader = new URLLoader(r);

            private var 
    arr:Array=new Array;
                    
            
            
            public function 
    flyers() {
                
    l.addEventListener(Event.COMPLETEcompleteHandler);
                
            }
            
            
            
            
            
    //___________________________________________________________xml
            
            
    private function completeHandler(e:Event) {
                var 
    d:XMLList = new XML(l.data).item;
                    for(var 
    i:int 0d.length(); i++){
                    
    //trace(d[i].flyer);
                    //trace(d[i].id);
                    //trace('________________________');
                    
    arr.push(d[i].flyer)
                    
                }
                
    caricamento(arr[0])
            }
        
            
            
            
            
    //___________________________________________________________preloader
            
    private function caricamento(file) {
                
    sezione.alpha=0;
                
    caricatore.unload();
                
    caricatore.load(new URLRequest(file));
            }
            private function 
    showPreloader(evt:Event):void {
                
    addChild(loadProgress_txt);
            }
            private function 
    showProgress(evt:ProgressEvent):void {
                var 
    p:Number=Math.round(100 evt.bytesLoaded evt.bytesTotal);
                
    loadProgress_txt.textColor=0xFFFFFF;
                
    loadProgress_txt.text="loaded:" evt.bytesLoaded " from " evt.bytesTotal;
            }
            private function 
    showLoadResult(evt:Event):void {
                
    removeChild(loadProgress_txt);
                
    sezione.x=0;
                
    sezione.y=0;
                
    sezione.alpha=0;
                
    Tweener.addTween(sezione,{alpha:1,time:2,transition:"easeOutExpo"});
            }
        }

    che significa?
    nella funzione caricamento() non c'è nulla che non va..credo..
    help!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    a occhio immagino che il problema sia il riferimento a quel sezione.alpha, prova a commentare la riga e vedi se gli errori spariscono o cambiano

  3. #3
    Originariamente inviato da and80
    a occhio immagino che il problema sia il riferimento a quel sezione.alpha, prova a commentare la riga e vedi se gli errori spariscono o cambiano
    grazie And, ci avevo già pensato ma non è quello
    ho anche provato a togliere tutti i riferimenti a sezione ma l'errore non cambia...


    è potente as3...ma mi fa perdere ore!!!

  4. #4
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Secondo me è qui l'errore:

    var d:XMLList = new XML(l.data).item;

    invece di usare l.data accedi all'oggetto tramite il target dell'evento...



  5. #5
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Aspetta ma dove dici a l di caricare l'xml? Mi manca qualche passaggio....

  6. #6
    ciao Nep,
    non credo che il problema sia sul parsing dell'xml in quanto se bypasso la funzione l'errore rimane.
    l'errore dovrebbe essere nella funzione caricamento()
    ma non capisco cosa ci sia di errato...

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    apsetta, guardando meglio, mi sembra che tu non abbia istanziato quel "caricatore" da nessuna parte,

    guarda io la tua classe la scriverei così:

    Codice PHP:
    package {
        
    import caurina.transitions.Tweener;
        
    import flash.display.*;
        
    import flash.events.Event;
        
    import flash.events.MouseEvent;
        
    import flash.events.ProgressEvent;
        
    import flash.net.URLLoader;
        
    import flash.net.URLRequest;
        
    import flash.text.TextField;
        public class 
    flyers extends MovieClip {
            private var 
    loadProgress_txt:TextField;
            private var 
    caricatore:Loader;
            private var 
    s:String;
            private var 
    r:URLRequest;
            private var 
    l:URLLoader;
            private var 
    d:XMLList;
            private var 
    arr:Array;
            public function 
    flyers () {
                
    loadProgress_txt=new TextField  ;
                
    caricatore=new Loader();
                
    s="test.xml";
                
    r=new URLRequest(s);
                
    l=new URLLoader(r);
                
    l.addEventListener (Event.COMPLETE,completeHandler);
            }
            private function 
    completeHandler (e:Event) {
                try {
                    
    d=new XML(e.target.data).item;
                    for (var 
    i:uint=0d.length(); i++) {
                        
    arr.push (d[i].flyer);
                    }
                    
    caricamento (arr[0]);
                } catch (
    e) {

                }
            }
            private function 
    caricamento (file:String) {
                
    sezione.alpha=0;
                
    caricatore.unload ();
                
    caricatore.load (new URLRequest(file));
            }
            private function 
    showPreloader (evt:Event):void {
                
    addChild (loadProgress_txt);
            }
            private function 
    showProgress (evt:ProgressEvent):void {
                var 
    p:Number=Math.round(100 evt.bytesLoaded evt.bytesTotal);
                
    loadProgress_txt.textColor=0xFFFFFF;
                
    loadProgress_txt.text="loaded:" evt.bytesLoaded " from " evt.bytesTotal;
            }
            private function 
    showLoadResult (evt:Event):void {
                
    removeChild (loadProgress_txt);
                
    sezione.x=0;
                
    sezione.y=0;
                
    sezione.alpha=0;
                
    Tweener.addTween (sezione,{alpha:1,time:2,transition:"easeOutExpo"});
            }
        }

    anche se penso che manchi qualche riferimento agli eventi, visto che le ultime funzioni non vengono richiamate da nessuna parte

  8. #8
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Il problema è semplicemente che viene messo un listener sul complete senza caricare nulla...

    dove'è l.load(r); ?

  9. #9
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Originariamente inviato da sha
    ciao Nep,
    non credo che il problema sia sul parsing dell'xml in quanto se bypasso la funzione l'errore rimane.
    l'errore dovrebbe essere nella funzione caricamento()
    ma non capisco cosa ci sia di errato...
    a parte l'errore conviene sempre fare riferimento al target dell'evento nei listeners, altrimenti leghi quel listener all'istanza di l e basta...

  10. #10
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Poi è buona usanza usare la prima lettera maiuscola per i nomi delle classi.



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.