AS3 - Zugriff auf Bibliothekselemente, die von außerhalb der Document-Klasse
Wie Sie access-Bibliothek-Elemente aus anderen Klassen als die document-Klasse?
Zum Beispiel, wenn ich einen movie clip in Flash und Exportieren für Actionscript mit dem Namen Foo, kann ich dies in der Dokument-Klasse:
var f = new Foo();
this.addChild(f);
Und es erscheint auf der Bühne, wie es sollte. Aber ich muss in der Lage sein, erstellen Sie weitere Instanzen eines Objektes aus anderen Klassen. Wenn ich den gleichen code oben in SomeOtherClass.wie, ich bekomme nichts auf die Bühne, offensichtlich, weil diese Klasse weiß nicht, über das Foo-Objekt in der Bibliothek.
Ich weiß, dass ich wahrscheinlich benötigen, um verwenden appplicationDomain.getDefinition irgendwie. Das funktioniert nicht:
var a = new ApplicationDomain(ApplicationDomain.currentDomain);
var foo: Class = a.getDefinition ( "com.me.CustomClass" ) ;
var f = new foo( ) ;
addChild ( f ) ;
TypeError: Error #1007: Instanziierung versucht, auf eine nicht-Konstruktor.
InformationsquelleAutor | 2009-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie eine Anwendungsdomäne problem. Die geladenen swf-Datei zugreifen können Klassen definiert, in der loader.
Sollten Sie die geladene swf-Datei der Zugriff auf die loader-swf-Bibliothek. Versuchen Sie es mit LoaderContext.
Aus der Spitze von meinem Kopf:
versuchen Sie dies: var clazz:Class = loaderInfo.applicationDomain.getDefinition("ClassName") as Class; var Instanz:Klassenname = new clazz();
InformationsquelleAutor Juan Pablo Califano
Versuchen, so etwas wie dieses:
Glaube ich, dass die symbol-Namen, sollten Sie nicht haben ein Paket namens am Anfang, für ein symbol aus der Bibliothek.
InformationsquelleAutor Jason S
Ich mich nicht erinnern, jemals dieses problem. Ich glaube (ist schon eine Weile her!) das müssen Sie schreiben code Klasse, die von MovieClip oder ähnlich und assoziieren mit der library-Eintrag irgendwo in den Eigenschaften. Natürlich ist dies erst einmal getan, können Sie behandeln die Bibliothek Klassen die gleichen wie bei jeder anderen Klasse.
EDIT:
versuchen Sie dies:
Beim genaueren Lesen Ihres Problems, ich weiß, dass dies ist der code auf der loader Seite, nicht die loadee Seite. Definitiv bellen, bis Sie den richtigen Baum obwohl.
InformationsquelleAutor spender
Ich finde diese Antworten etwas mehr gekocht, weil alles, was ich jemals gemacht habe, verwenden Sie ein Bibliothekselement aus einer Klasse ist, importieren Sie es wie jedes standard-import. Sicherlich, dass ist der Grund, warum wir die Option Export für Actionscript.
Beispiel:
Ich finde, es funktioniert und jedes mal kann nicht sagen, ob oder nicht, es ist der richtige Weg. aber es funktioniert für mich.
InformationsquelleAutor Steve