Referenshandbok för ActionScript® 3.0 i Adobe® Flash®-plattformen
Hem  |  Dölj paket och klasslista |  Paket  |  Klasser  |  Nyheter  |  Index  |  Bilagor  |  Varför på engelska?
Filter: Hämtar data från servern ...
Hämtar data från servern ...
Översta nivån 

Class  - AS3

PaketÖversta nivån
Klasspublic dynamic class Class
ArvClass Inheritance Object

Språkversion: ActionScript 3.0
Körningsmiljöversioner: AIR 1.0, Flash Player 9, Flash Lite 4

Ett Class-objekt skapas för varje klassdefinition i ett program. Alla Class-objekt är en instans av Class-klassen. Class-objektet innehåller klassens statiska egenskaper och metoder. Klassobjektet skapar en instans av klassen när den anropas med operatorn new.

Vissa metoder, till exempel flash.net.getClassByAlias(), returnerar ett objekt av typen Class. Andra metoder kan ha en parameter av typen Class, till exempel flash.net.registerClassAlias().

Klassnamnet är referensen till Class-objektet som visas i exemplet:

 
 class Foo {
 }
 

Programsatsen class Foo{} är den klassdefinition som skapar Class-objektet Foo. Programsatsen new Foo() skapar även en ny instans av klassen Foo och resultatet blir av typen Foo.

Använd programsatsen class när du deklarerar klasser. Class-objekt är användbara i avancerad teknik, till exempel när klasser tilldelas till ett befintligt instansobjekt vid körning, vilket visas under "Exempel" nedan.

Alla statiska egenskaper och metoder i en klass finns i klassens Class-objekt. Class deklarerar prototype.

Oftast behöver du inte deklarera eller skapa variabler av typen Class manuellt. I följande kod tilldelas dock en klass som en publik Class-egenskap, circleClass, och du kan hänvisa till den här Class-egenskapen som en egenskap i huvudklassen Library:

 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);
  }
 }
 

En annan SWF-fil kan läsa in den resulterande Library.swf-filen och sedan skapa ett objekt av typen Circle. I följande exempel visas ett sätt att få tillgång till en resurs i en underordnad SWF-fil. (En annan teknik är att använda flash.utils.getDefnitionByName() eller importera stub-definitionerna i den underordnade SWF-filen.)

 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);
      }
  }
 }
 

I ActionScript 3.0 kan du skapa inbäddade klasser för externa resurser (till exempel bilder, ljud eller teckensnitt) som är kompilerade till SWF-filer. I tidigare versioner av ActionScript associerade du till de resurserna genom att använda ett länk-ID med metoden MovieClip.attachMovie(). I ActionScript 3.0 representeras varje inbäddad resurs av en unik inbäddad resursklass. Du kan därför använda operatorn new när du skapar en instans av resursens associerade klass och anropar metoder och egenskaper på resursen.

Visa exemplen

Relaterade API-element



Publika egenskaper
 EgenskapDefinieras med
 Inheritedconstructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans.
Object
Publika metoder
 MetodDefinieras med
 Inherited
Anger om det finns en egenskap angiven för ett objekt.
Object
 Inherited
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter.
Object
 Inherited
Anger om den angivna egenskapen finns och är uppräkningsbar.
Object
 Inherited
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder.
Object
 Inherited
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner.
Object
 Inherited
Returnerar det angivna objektets strängbeteckning.
Object
 Inherited
Returnerar det angivna objektets primitiva värde.
Object
Class.1.as

I följande exempel visas hur du använder Class-objekt för att skjuta upp beslutet om vilken klass du ska skapa en instans av:
  1. Deklarera två klasser som ClassA och ClassB.
  2. Deklarera en variabel av typen Class med namnet classToConstruct och en variabel av typen Boolean med namnet chooseClassA som ställs in på true, i det här fallet. Du kan även använda ett eget testuttryck i koden som ställer in värdet på variabeln.
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 {
}




[ X ]Varför på engelska?
Innehåll i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen är på engelska

Det är inte alla delar av Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen som översätts till alla språk. Om ett språkelement inte översätts visas det på engelska. Klassen ga.controls.HelpBox översätts till exempel inte till något språk. I den svenska versionen av referenshandboken visas därför klassen ga.controls.HelpBox på engelska.