Ich habe die folgenden zwei Projekte in Flex Builder 3:Wie wird das [Mixin] -Tag in AS3-Anwendungen verwendet?
One AS3 Bibliotheksprojekt (erzeugt eine SWC-Datei)
Ein Flex-Anwendungsprojekt (MXML Anwendung)
Die MXML-Anwendung verweist auf das AS3-Bibliotheksprojekt (Flex-Erstellungspfad). So weit, ist es gut. Ich möchte jetzt Code automatisch ausführen, wenn eine Anwendung die AS3-Bibliothek verwendet. Das [Mixin] -Tag sollte genau das tun, was ich brauche.
Ich folgte den Anweisungen von http://nondocs.blogspot.com/2007/04/metadatamixin.html und checkte das AutoQuick-Projekt aus. Letzteres ist ein Beispielprojekt von Adobe, das die Verwendung des Automatisierungsframeworks zeigt. In diesem Projekt verwenden sie das [Mixin] -Tag (Klasse AQAdapter).
Ich folgte den Beispielen, aber mein Code funktioniert nicht. Die statische init-Methode wird nicht aufgerufen. Ich habe die Bibliothek der Liste der Compiler-Argumente hinzugefügt, die auch nicht funktioniert hat.
Wie bekomme ich das zur Arbeit?
/* class to be automatically loaded */
package {
/* includes */
[mixin]
public class TestApp extends Sprite {
/* additional members */
private static var mContainer:DisplayObjectContainer;
private static var mInstance:TestApp;
/**
* @private
*/
public static function init(root:DisplayObject):void
{
if(!mInstance)
{
mContainer = root as DisplayObjectContainer;
mContainer.addEventListener(FlexEvent.APPLICATION_COMPLETE, applicationCompleteHandler);
}
}
}
}
Der Tag [Mixin] (erster Buchstabe ist Großbuchstaben!) Verwendet werden muss, und eine Referenz wie "var test: TestApp;" ist ausreichend, um den statischen Code aufzurufen. –
Die Compileroption -include = ClassName lädt die Klasse trotzdem, daher ist es nicht erforderlich, einen Verweis im Code hinzuzufügen. –