ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
mx.core 

ComponentDescriptor  - AS3 Flex

Paketmx.core
Klassepublic class ComponentDescriptor
VererbungComponentDescriptor Inheritance Object
Unterklassen UIComponentDescriptor

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

ComponentDescriptor ist die Basisklasse der UIComponentDescriptor-Klasse, die die von Ihnen in einem MXML-Tag für eine Instanz einer visuellen Komponente angegebenen Informationen zusammenfasst. Komponenten, die keine visuellen Komponenten sind, werden in Flex anders behandelt und haben keine Deskriptoren. In einer zukünftigen Version wird jedoch möglicherweise die ComponentDescriptor-Basisklasse auch für sie verwendet.

Die meisten Tags in einer MXML-Datei beschreiben eine aus UIComponent-Objekten bestehende Baumstruktur. Beispiel: Das <mx:Application>-Tag repräsentiert ein UIComponent-Objekt, und seine untergeordneten Container und Steuerelemente sind alle UIComponent-Objekte.

Der MXML-Compiler kompiliert jedes dieser MXML-Tags in einer UIComponentDescriptor-Instanz. Genauer gesagt, generiert der MXML-Compiler automatisch eine ActionScript-Datenstruktur, welche eine Baumstruktur bestehend aus UIComponentDescriptor-Objekten ist.

Während der Laufzeit verwendet die createComponentsFromDescriptors()-Methode der Container-Klasse die Informationen in den UIComponentDescriptor-Objekten im childDescriptors-Array des Containers, um die tatsächlichen UIComponent-Objekte, die untergeordneten Elemente des Containers, sowie untergeordnete Elemente tieferer Ebenen zu erstellen. Abhängig vom Wert der creationPolicy-Eigenschaft des Containers können die untergeordneten Elemente beim Anwendungsstart erstellt werden, wenn ein Teil der Komponente in Kürze sichtbar wird oder wenn der Anwendungsentwickler die createComponentsFromDescriptors()-Methode manuell aufruft.

Sie erstellen ComponentDescriptor- oder UIComponentDescriptor-Instanzen normalerweise nicht selbst. Sie können auf diejenigen zugreifen, die der MXML-Compiler automatisch mithilfe des childDescriptors-Arrays der Container-Klasse generiert.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  document : Object
Ein Verweis auf das Dokumentenobjekt, in dem die Komponente erstellt werden soll.
ComponentDescriptor
  events : Object
Ein Objekt, das Name/Wert-Paare für die Ereignisprozeduren der Komponente entsprechend der Angaben in MXML enthält.
ComponentDescriptor
  id : String
Der Bezeichner der Komponente, wie in MXML angegeben.
ComponentDescriptor
  properties : Object
[schreibgeschützt] Ein Objekt, das Name/Wert-Paare für die Eigenschaften der Komponente entsprechend der Angaben in MXML enthält.
ComponentDescriptor
  propertiesFactory : Function
Eine Funktion, die ein Objekt zurückgibt, das Name/Wert-Paare für die Eigenschaften der Komponente entsprechend der Angaben in MXML enthält.
ComponentDescriptor
  type : Class
Die Klasse der Komponente, entsprechend den Angaben in MXML.
ComponentDescriptor
Öffentliche Methoden
 MethodeDefiniert von
  
ComponentDescriptor(descriptorProperties:Object)
Konstruktor.
ComponentDescriptor
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
  
Macht die properties-Eigenschaft im Cache ungültig.
ComponentDescriptor
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
  
Gibt den String „ComponentDescriptor_“ und den Wert der ID-Eigenschaft an.
ComponentDescriptor
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails

document

Eigenschaft
public var document:Object

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Ein Verweis auf das Dokumentenobjekt, in dem die Komponente erstellt werden soll.

Verwandte API-Elemente

events

Eigenschaft 
public var events:Object

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Ein Objekt, das Name/Wert-Paare für die Ereignisprozeduren der Komponente entsprechend der Angaben in MXML enthält.

Beispiel:

      <mx:DataGrid id="dg" initialize="fetchData(); initDataGrid();"  change="changeHandler(event);"/>
      

In diesem Beispiel entspricht die events-Eigenschaft des Deskriptors dem Objekt

      { initialize: "__dg_initialize", change: "__dg_change" }
      

Die event-Eigenschaft ist null, wenn keine MXML-Ereignisprozeduren für die Komponente angegeben wurden.

Die Strings "__dg_initialize" und "__dg_change" sind die Namen der Ereignisprozedurmethoden, die der MXML-Compiler automatisch generiert. Der Hauptteil dieser Methoden enthält die ActionScript-Anweisungen, die Sie als Werte der Ereignisattribute angegeben haben. Beispiel für die automatisch generierte initialize-Prozedur:

      public function __dg_initialize(event:mx.events.FlexEvent):void
      {
          fetchData();
          initDataGrid();
      }
      

Automatisch generierte Ereignisprozeduren werden nicht immer durch Namen angegeben. Dies kann sich jedoch in zukünftigen Flex-Versionen ändern.

Diese Eigenschaft wird von der Container-Methode createComponentsFromDescriptors() verwendet, um automatisch generierte Ereignisprozeduren mit der addEventListener()-Methode zu registrieren.

id

Eigenschaft 
public var id:String

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Der Bezeichner der Komponente, wie in MXML angegeben.

Beispiel:

      <mx:TextInput id="firstName" text="Enter your first name here"/>
      

In diesem Beispiel entspricht die id-Eigenschaft des Deskriptors dem String "firstName".

Die id-Eigenschaft ist null, wenn für die Komponente keine MXML-ID angegeben wurde.

Der Wert der id-Eigenschaft wird der Name einer öffentlichen Variable im MXML-Dokumentenobjekt, das vom MXML-Compiler automatisch generiert wird. Der Wert dieser Variablen ist ein Verweis auf das UIComponent-Objekt, das von diesem Deskriptor erstellt wird. Aus diesem Grund können Sie beispielsweise an einer beliebigen Stelle eines Dokuments, das eine TextInput-Instanz enthält, mit firstName.text auf die text-Eigenschaft dieses TextInput-Steuerelements verweisen.

Wenn eine id angegeben wird, die kein leerer String ist, wird sie auch zum name des DisplayObject-Objekts. Wenn keine id angegeben wird oder der String leer ist, wird der name des DisplayObject-Objekts weiterhin automatisch generiert (beispielsweise "Button3", wie von der NameUtil.createUniqueName()-Methode zurückgegeben). Der name dient zum Generieren des Strings, der von der toString()-Methode zurückgegeben wird. Außerdem wird er verwendet, um von einem übergeordneten Element aus mit getChildByName() eine bestimmte Komponente zu suchen.

Verwandte API-Elemente

properties

Eigenschaft 
properties:Object  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Ein Objekt, das Name/Wert-Paare für die Eigenschaften der Komponente entsprechend der Angaben in MXML enthält.

Beispiel:

      <mx:TextInput width="150" text="Hello"/>
      

In diesem Beispiel entspricht die properties-Eigenschaft des Deskriptors dem Objekt

      { width: 150, text: "Hello" }
      

Die properties-Eigenschaft ist null, wenn für die Komponente keine MXML-Eigenschaften angegeben wurden. In diesem Fall verwendet die Komponente Standard-Eigenschaftswerte.

Dieses Objekt wird erzeugt, indem die von der propertiesFactory-Eigenschaft angegebene Funktion aufgerufen wird und dann für zukünftige Zugriffe im Cache gespeichert wird. Wenn jedoch ein Repeater von demselben Deskriptor mehrere Instanzen einer Komponente erzeugt, sollte für jede Instanz eine neue Kopie des properties-Objekts erstellt werden, damit Eigenschaftswerte, die Arrays oder Objektverweise sind, nicht gemeinsam verwendet werden. Dazu ruft der Repeater die invalidateProperties()-Methode des Deskriptors auf.



Implementierung
    public function get properties():Object

Verwandte API-Elemente

propertiesFactory

Eigenschaft 
public var propertiesFactory:Function

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Eine Funktion, die ein Objekt zurückgibt, das Name/Wert-Paare für die Eigenschaften der Komponente entsprechend der Angaben in MXML enthält.

Beispiel:

      <mx:TextInput width="150" text="Hello">
      

In diesem Beispiel entspricht die propertiesFactory-Eigenschaft des Deskriptors dieser Funktion:

      function():Object { return { width: 150, text: "Hello" }; }
      

Die propertiesFactory-Eigenschaft ist null, wenn für die Komponente keine MXML-Eigenschaften angegeben wurden. In diesem Fall verwendet die Komponente Standard-Eigenschaftswerte.

Statt eines tatsächlichen Objekts wird die Funktion propertyFactory verwendet, um ein Objekt zurückzugeben, damit die Objekte des ComponentDescriptor-Baums einzeln „aufgeklappt“ werden können. Wenn alle Deskriptoren im Deskriptorbaum des Dokuments beim Start erstellt werden, nimmt der Start mehr Zeit in Anspruch.

Die properties-Eigenschaft gibt ein Objekt im Cache zurück, dass von dieser Factory-Funktion erzeugt wurde.

Hinweis: Ereignisprozeduren wie click="doSomething();" kommen im events-Objekt und nicht im properties-Objekt vor.

Verwandte API-Elemente

type

Eigenschaft 
public var type:Class

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Die Klasse der Komponente, entsprechend den Angaben in MXML.

Beispiel:

      <mx:TextInput/>
      

In diesem Beispiel entspricht die type-Eigenschaft des Deskriptors der Klasse mx.controls.TextInput.

Die Eigenschaft ist für vom MXML-Compiler erstellte ComponentDescriptor-Objekte nie null, da jedes MXML-Tag einen Tag-Namen wie mx:TextInput aufweist.

Die Zuordnung des MXML-Tags zur entsprechenden Klasse wird durch den XML-Namespace und ggf. durch dessen Manifestdatei bestimmt. Der durch mx: prefix dargestellte Flex-Standardnamespace http://www.adobe.com/2006/mxml ist in der Datei flex-config.xml mit der Manifestdatei mxml-manifest.xml verknüpft. Das Tag

      <component id="TextInput" class="mx.controls.TextInput"/>
      

in dieser Datei ordnet den Tag-Namen mx:TextInput der Klasse mx.controls.TextInput zu. Beachten Sie, dass bei Verwendung einer Manifestdatei Komponenten in einem einzigen XML-Namespace Klassen in mehreren ActionScript-Paketen zugeordnet werden können.

Konstruktordetails

ComponentDescriptor

()Konstruktor
public function ComponentDescriptor(descriptorProperties:Object)

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Konstruktor.

Parameter
descriptorProperties:Object — Ein Objekt, das Name/Wert-Paare für die Eigenschaften des ComponentDescriptor-Objekts enthält, wie etwa type, id, propertiesFactory und events.
Methodendetails

invalidateProperties

()Methode
public function invalidateProperties():void

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Macht die properties-Eigenschaft im Cache ungültig. Wenn die properties-Eigenschaft das nächste Mal gelesen wird, werden die Eigenschaften von der Funktion neu generiert, die durch den Wert der propertiesFactory-Eigenschaft angegeben wird.

toString

()Methode 
public function toString():String

Sprachversion: ActionScript 3.0
Produktversion: Flex 3
Laufzeitversionen: Flash Player 9, AIR 1.1

Gibt den String „ComponentDescriptor_“ und den Wert der id-Eigenschaft an.

Rückgabewerte
String — Gibt den String „ComponentDescriptor_“ und den Wert der id-Eigenschaft an.




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.