2011-01-07 15 views
1

Ich verschiebe einige Flex-Klassen zu reinem Flash/AS3, um Teil einer gemeinsam genutzten Bibliothek zu sein. Ich habe einen Ereignis-Listener auf FlexEvent.CREATION_COMPLETE, um Anzeigeobjekte zu erstellen und hinzuzufügen, sobald die Dinge laufen, aber ich kenne nicht den richtigen Weg, dies in Flash zu tun?Was ist das Flash-Äquivalent von FlexEvent.CREATION_COMPLETE

edit: Vielleicht, wenn meine Klasse Subklassen Sprite eher als eine Flex-Klasse, ich Kinder im Konstruktor hinzufügen kann, ich weiß nicht Notwendigkeit warten für einen „Bau abgeschlossen“ Event?

Antwort

2

Das hängt davon ab, was Sie zu tun versuchen: Wenn Sie untergeordnete Elemente im Konstruktor hinzufügen, können Sie sich nicht auf Informationen über die Bühne und/oder andere Elemente verlassen. Ich habe es besser gefunden, im Konstruktor einen Ereignis-Listener für Event.ADDED_TO_STAGE hinzuzufügen und die Handler-Methode das Element initialisieren zu lassen.

0

Sie vergleichen hier wirklich Äpfel und Orangen.

Das Flex-Framework ist ein UI-Framework und das Ereignis CREATION_COMPLETE ist Teil dieses Frameworks.

Flash Professional ist eine IDE, die hauptsächlich für die Erstellung von Animationen gedacht ist. Es verfügt über ActionScript-Unterstützung, ist jedoch kein Framework und bietet außer nativem ActionScript nichts anderes als Bibliotheken oder Klassen, die Sie erstellen, kaufen, erstellen oder ausleihen.

Wenn Sie parallel zu creationComplete arbeiten möchten, müssen Sie wahrscheinlich ein UI-Framework finden oder erstellen. Theoretisch ist es möglich (wenn auch nicht einfach, und ich würde es auch nicht empfehlen), das Flex Framework für die Verwendung in einem von Flash IDE erstellten Film zu initialisieren. Schließlich ist ActionScript alles unter der Haube.

+1

Nein, das stimmt nicht. Sie können ein AS3/Flash-Projekt zu 100% in Code mit FlashBuilder oder FlashDevelop erstellen ... dann würden alle benutzerdefinierten visuellen Komponenten auf Sprite anstelle von UIComponent usw. basieren. 'CREATION_COMPLETE' bedeutet, dass die Flex-Erstellung abgeschlossen ist ... nun Flash Komponenten müssen erstellt und der Render-Hierarchie hinzugefügt werden. Ich denke, "Event.ADDED_TO_STAGE" ist das, wonach ich gesucht habe. –

+0

@John, was Flextras sagt, hat etwas Wahres ich meine es ist nicht Äpfel zu Orangen, vielleicht Äpfel zu "Birne Äpfel", Flex ist eine Reihe von Komponenten alle in AS3 oder MXML, die in AS3 kompiliert ist, was Sie sagen hat auch etwas Wahrheit, aber die Tatsache der Angelegenheit ist Flash selbst hat nicht den gleichen Lebenszyklus wie Flex wegen der zusätzlichen Code in UIComponent unter den Rest der Manager, irgendwie Punkt ist strittig, ich nehme an, da Sie was haben du brauchst da ich denke, creation_complete im Fall von Flex wird nach dem Hinzufügen von Kindern aufgerufen und Layout ist abgeschlossen. – shaunhusain

+0

@John Ich weiß nicht, wie deine Worte allem widersprechen, was ich gesagt habe; und als solche ist mir unklar, was Sie in meiner Antwort für unwahr halten. Event.ADDED_TO_STAGE ist Teil der Hauptklassen und wird auch von einer Flex-Komponente oder von allem, was der Bühne hinzugefügt wird, bereitgestellt. Die Bühne wird im Rahmen der normalen Flex-Entwicklung "maskiert", ist aber immer noch da. Ich kann akzeptieren, dass ADDED_TO_STAGE in gewisser Hinsicht analog zu CREATION_COMPLETE sein kann. Aber, wie es in einer anderen Antwort gesagt wurde, hängt es davon ab, was Sie tun möchten. Ich bin mir nicht sicher, wo ADDED_TO_STAGE in Bezug auf den Flex-Lebenszyklus ausgelöst wird. – JeffryHouser

0

creationComplete Wird ausgelöst, wenn die Komponente und alle untergeordneten Komponenten und alle untergeordneten Elemente usw. erstellt und angelegt wurden und sichtbar sind.

Hier finden Sie weitere Informationen zu den Flex-Life-Cycle-Ereignissen und einige, die hier einfach zu verstehen sind: auch + 1ed die added_to_stage, da es wahrscheinlich ist, was Sie in diesem Fall benötigen.

http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_3.html