2009-08-27 10 views
2

Wir haben ein Widget (SWF), das in zwei SWFs aufgeteilt werden muss. Die SWF-Hauptdatei enthält die gesamte Programmierungs- und Geschäftslogik und eine zweite SWF-Datei, die die Assets, Schriftarten usw. enthält.Flash, ActionScript: Laden von Assets von externen SWF

Ich habe begrenzte Erfahrung in Flash, aber ich weiß, dass es in Flex gemacht werden kann. Wie auch immer, wir müssen es in Flash CS3 machen. Wird es möglich sein, dies in Flash zu tun? Wenn ja, welchen Schritten müssen wir folgen?

Danke, Sri

Antwort

2

Werfen Sie einen Blick auf die Loader Klasse. Code kann einfacher als der im Beispiel sein, aber es ist ein Anfang. Es gibt ein gut erklärtes Tutorial auf der flashandmath.com Website.

In Ihrer Main Fla (mit Logik), erstellen Sie einen Loader, sagen Sie ihm, um die Assets zu laden, auf Event.INIT, verwenden Sie die Assets.

3

Wenn Sie Assets von einer externen SWF-Datei laden, ist es oft hilfreich, die in der externen SWF-Datei gespeicherten Klassen zu instanziieren. So wird beispielsweise häufig auf Fonts zugegriffen.

Wenn Sie dies tun, müssen Sie sicherstellen, dass Ihre lokale SWF die Definition dieser Klassen hat, und einfach kompilieren beide SWF-Dateien zusammen garantiert dies nicht. Genauer gesagt, wenn SWF von Klassen in einem anderen abhängig ist, enthalten beide SWF-Dateien Kopien der Klassendefinitionen. Wenn Sie die externe SWF-Datei in der Laufzeit laden, erhalten Sie Casting-Fehler, da die VM das nicht kennt benannte Klasse in einer externen SWF ist genau das gleiche wie das, das Sie haben.

Um das Problem zu umgehen, müssen Sie ApplicationDomain.getDefinition() auf der geladenen SWF verwenden - siehe hier für eine detailed example. Zusätzlich zu einem detaillierten Beispiel zur Verwendung von Loader zeigen sie auch, wie Objekte aus einer externen SWF-Datei Class abgerufen werden.