Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243

    visibilità this dentro classe

    ho cercato sul forum ma pare che non ci siano altri topic a riguardo...

    ho una classe, questa
    Codice PHP:
    class myClass{
     var private 
    caricatore:LoadVars;

     function 
    myClass(){
      
    this.caricatore.onLoad=this.caricato;
      
    this.caricatore.load(xxx,yyy);
     }
     private function 
    foo(){
       
    trace("hello world");
     }
     private 
    caricato(success){
      if(
    success){
             
    trace("ok");
             
    this.foo();
        }
     }

    mentre vedo in consolle "ok", purtroppo this.foo() non viene richiamato.. perchè - da quello che ho capito sulla guida - this è riferito all'ambiante della funzione onLoad e quindi this è l'oggetto "caricatore".
    la mia domanda è: come faccio da dentro onLoad a riferirmi alla classe?

    ho provato con _root, super, _parent ma nisba!

    any idea?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    Re: visibilità this dentro classe

    codice:
    class myClass{
     var private caricatore:LoadVars;
    
     function myClass(){
      this.caricatore.path = this;
      this.caricatore.onLoad=this.caricato;
      this.caricatore.load(xxx,yyy);
     }
     private function foo(){
       trace("hello world");
     }
     private function caricato(success){
      if(success){
             trace("ok");
             this.path.foo();
        }
     }
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    sei un grossooooo!!!!!

    non ci sarei mai arrivato! trucchetto ottimo!

    eh l'esperienza!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243


    Nessun metodo denominato 'path'.
    Codice PHP:
        function clsLoadVars() {
            
    this.dataLoader = new LoadVars();
            
    this.dataLoader.onLoad this.onLoader;
            
    this.dataLoader.path this;
        }

        
    /**ecc ecc**/

        
    private function onLoader(success) {
            
    /**qui dentro this si riferisce all'oggetto dataLoader??**/
            
    if (success) {
                
    trace("dati caricati");
                
    this.path.foo();
                
    trace("dati caricati2");
            } 

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    non vaaaa

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    posta tutto il codice della classe, così è zoppa e non si capisce

    è probabile che l'applicazione del metodo fatta sulla riga

    this.dataLoader.onLoad = this.onLoader;

    non riconosca il dataLoader come this, ma riconosca invece l'istanza della classe, correttamente, infatti se ti dice che non c'è un metodo denominato "path", si sta riferendo alla classe...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    purtroppo no xk con "this instance of LoadVars" restituisce true mentre "this istanceof myClass" restituisce false!



    ecco qui:
    Codice PHP:
    class myClass{
        private var 
    dataLoaded:Boolean;
        private var 
    dataLoader:LoadVars;
        
    //costruttore
        
    function myClass() {
            
    this.dataLoaded false;
            
    this.dataLoader.onLoad this.onLoader;
            
    //LoadVars.prototype.path = 0;
            
    dataLoader.path this;
        }
        
    //carica i dati dal php
        
    private function loadVars() {
            
    this.dataLoader.load(this.dataURL);
        
        }

        
    //funzione richiamata quando sono stati caricati correttamente i dati
        
    private function onLoader(success) {
            
    /**qui dentro this si riferisce all'oggetto dataLoader??**/
            //trace(this.dataLoaded);        
            //this.dataLoaded = success;
            
    if (success) {
                
    trace("dati caricati");
                
    //this.dataLoader.path.foo();
                
    trace("dati caricati2");
            }
        }

        
    //imposta la sorgente dei dati
        
    public function setSourceAndLoad(dURL:String):Void {
            
    this.dataURL dURL;
            
    this.loadVars();
        }

        private function 
    foo() {
            
    trace("the foo function is called");
        }


  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    no one?

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    scusa ma non sono ancora riuscito a dare uno sguardo al tuo codice... adesso lo guardo...

    [edit]
    scusa ma questo cosa è -> //this.dataLoader.path.foo();
    se usi il this riferito al loadvars, dovresti fare così -> //this.path.foo();

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    no era una prova ho errato....non va comunque! ed è moltro strano!

    qualcuno non ha avuto bisogno di questo tipo di necessità?


    oppure, altre strade sempre valide??

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.