Paket | mx.core |
Klasse | public class ComponentDescriptor |
Vererbung | ComponentDescriptor Object |
Unterklassen | UIComponentDescriptor |
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
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
mx.core.Container.childDescriptors
mx.core.Container.creationPolicy
mx.core.Container.createComponentsFromDescriptors()
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : 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 |
Methode | Definiert von | ||
---|---|---|---|
ComponentDescriptor(descriptorProperties:Object)
Konstruktor. | ComponentDescriptor | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Macht die properties-Eigenschaft im Cache ungültig. | ComponentDescriptor | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
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 | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
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.
ComponentDescriptor | () | Konstruktor |
public function ComponentDescriptor(descriptorProperties:Object)
Sprachversion: | ActionScript 3.0 |
Produktversion: | Flex 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Konstruktor.
ParameterdescriptorProperties:Object — Ein Objekt, das Name/Wert-Paare für die Eigenschaften des ComponentDescriptor-Objekts enthält, wie etwa type , id , propertiesFactory und events .
|
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.
String — Gibt den String „ComponentDescriptor_“ und den Wert der id -Eigenschaft an.
|
Tue Jun 12 2018, 10:04 AM Z