Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [AS3] Accedere agli oggetti presenti sullo stage dal codice di una classe

    Se ho un oggetto sullo stage, per esempio un simbolo Clip filmato, oppure un campo di testo dinamico, dopo aver dato un nome all'istanza non riesco a richiamarlo dal codice di una classe che non sia la classe del documento.
    Per esempio, sullo stage del fla inserisco un campo di testo dinamico e chiamo l'istanza testoDinamico. Voglio scrivere "ciao"; se faccio:

    ClasseDocumento.as
    codice:
    package {
    import flash.display.Sprite;
    public class ClasseDocumento extends Sprite {
        public function ClasseDocumento():void {
            testoDinamico.appendText("ciao");
        }
    }
    }
    mi funziona, perchè il richiamo a testoDinamico avviene dalla classe del documento, ma se invece faccio:

    ClasseDocumento.as
    codice:
    package {
    import flash.display.Sprite;
    public class ClasseDocumento extends Sprite {
        public function ClasseDocumento():void {
            var Scrivi:ClasseTesto = new ClasseTesto();
        }
    }
    }
    ClasseTesto.as
    codice:
    package {
    public class ClasseTesto {
        public function ClasseTesto():void {
            testoDinamico.appendText("ciao");
        }
    }
    }
    non funziona e dice: Accesso alla proprietà non definita testoDinamico.
    Ma ci sarà un modo per richiamare l'istanza...

  2. #2
    Ho risolto grazie a questo:
    http://www.flepstudio.org/forum/acti...econdaria.html
    Usando il metodo illustrato da enricoB, nel caso dell'esempio è diventato:

    ClasseDocumento.as
    codice:
    package {
    import flash.display.Sprite;
    public class ClasseDocumento extends Sprite {
        public function ClasseDocumento():void {
    		Global.Var.root=this;
            var Scrivi:ClasseTesto = new ClasseTesto();
        }
    }
    }
    ClasseTesto.as
    codice:
    package {
    public class ClasseTesto {
        public function ClasseTesto():void {
            Global.Var.root.testoDinamico.appendText("ciao");
        }
    }
    }
    Global.as
    codice:
    package{
        public class Global {
    		public static  var Var:Object = new Object();
    	}
    }
    E' abbastanza complicato ma funziona.

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.