PacchettoPrimo livello
Classepublic dynamic class Class
EreditarietàClass Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un oggetto Class viene creato per ogni definizione di classe in un programma. Ogni oggetto Class è un'istanza della classe Class. L'oggetto Class contiene le proprietà statiche e i metodi della classe. L'oggetto Class crea le istanze della classe quando viene richiamato mediante l'operatore new.

Alcuni metodi, ad esempio flash.net.getClassByAlias(), restituiscono un oggetto di tipo Class. Altri metodi possono avere un parametro di tipo Class, ad esempio flash.net.registerClassAlias().

Il nome della classe è il riferimento all'oggetto Class, come mostra l'esempio seguente:

 
 class Foo { }
 

L'istruzione class Foo{} è la definizione di classe che crea l'oggetto Class Foo. Inoltre, l'istruzione new Foo() crea una nuova istanza della classe Foo e il risultato è di tipo Foo.

Utilizzare l'istruzione class per dichiarare le classi. Gli oggetti Class sono utili per tecniche avanzate quali l'assegnazione delle classi a un oggetto istanza esistente in fase di runtime, come mostrato nella sezione "Esempi" più avanti.

Tutte le proprietà statiche e i metodi di una classe si trovano nell'oggetto Class della classe. Class dichiara prototype.

In genere, non è necessario dichiarare o creare le variabili di tipo Class manualmente. Tuttavia, nel codice seguente una classe viene assegnata come proprietà Class pubblica circleClass ed è possibile fare riferimento a questa proprietà Class come proprietà della classe Library principale:

 package {
  import flash.display.Sprite;
  public class Library extends Sprite {
   
   public var circleClass:Class = Circle;
   public function Library() {
   }
  }
 }
  
 import flash.display.Shape;
 class Circle extends Shape {
  public function Circle(color:uint = 0xFFCC00, radius:Number = 10) {
   graphics.beginFill(color);
   graphics.drawCircle(radius, radius, radius);
  }
 }
 

Un altro file SWF può caricare il file Library.swf risultante e successivamente creare le istanze degli oggetti di tipo Circle. L'esempio seguente mostra un modo per ottenere l'accesso alle risorse di un file SWF secondario. (In alternativa, è possibile utilizzare flash.utils.getDefnitionByName() o importare le definizioni stub del file SWF secondario.)

 package {
  import flash.display.Sprite;
  import flash.display.Shape;
  import flash.display.Loader;
  import flash.net.URLRequest;
  import flash.events.Event;
  public class LibaryLoader extends Sprite {
   public function LibaryLoader() {
    var ldr:Loader = new Loader();
    var urlReq:URLRequest = new URLRequest("Library.swf");
    ldr.load(urlReq);
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
   }
   private function loaded(event:Event):void {
    var library:Object = event.target.content;
    var circle:Shape = new library.circleClass();
    addChild(circle);
   }
  }
 }
 

In ActionScript 3.0, è possibile creare delle classi incorporate per le risorse esterne (quali immagini, suoni o caratteri) che vengono compilate nei file SWF. Nelle precedenti versioni di ActionScript, tali risorse venivano assegnate mediante un identificatore di concatenamento con il metodo MovieClip.attachMovie(). In ActionScript 3.0, ogni risorsa incorporata è rappresentata da una classe di risorsa incorporata univoca. Pertanto, è possibile utilizzare l'operatore new per creare le istanze della classe associata della risorsa e chiamare i metodi e le proprietà sulla risorsa.

Vedere gli esempi

Vedere anche

Object.prototype
Operatore new
Classi
Argomenti avanzati


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Esempi Come utilizzare gli esempi
Class.1.as

L'esempio seguente mostra come utilizzare gli oggetti Class per differire fino alla fase di runtime la decisione relativa alla classe di cui creare un'istanza mediante la procedura seguente:
  1. Dichiarare due classi come ClassA e ClassB.
  2. Dichiarare una variabile di tipo Class denominata classToConstruct e una di tipo Boolean chooseClassA che in questo caso è impostata su true, ma il cui valore potrebbe essere impostato nel codice mediante un'espressione di test personalizzata.
package {
    import flash.display.Sprite;
    
    public class ClassExample extends Sprite {
        public function ClassExample() {
            var classToConstruct:Class;            
            var classInstance:Object;

            classToConstruct = ClassA;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassA]

            classToConstruct = ClassB;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassB]
        }
    }
}

class ClassA {
}
    
class ClassB {
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/Class.html