Archive for the ‘ Uncategorized ’ Category

Alchemy und FlarToolkit

Nachdem ich Alchemy für mich entdeckt habe um die Performance von Flashapplikationen zu verbessern, liegt es nahe dies mit dem Augmented Reality Toolkit für Flash zu kombinieren. Da ich bald beginne meine Diplomarbeit zu schreiben wollte ich dies als Thema meinem Arbeitgeber vorschlagen. Bei meinen Recherchen zu dem Thema bin ich über einen Blogeintrag von Gerb Sterrenburg gestolpert.  <Link>

Dort wird auf einen Entwicklungszweig des FlarToolkits verwiesen der genau mein Thema behandelt. Es wird hier mit Hilfe des Alchemy Projektes die Erkennung des Pattern im Flash, durch das Einbinden von C++ Bibiliotheken, beschleunigt. Damit hat sich mein Diplomarbeitsthema erlegt. Allerdings bietet dieser Entwicklungszweig neue Möglichkeiten für Augmented Reality Umgebungen in Flash. Ich werde mir die Implementierung näher anschauen und bei Gelegenheit hier weitere Informationen dazu posten.

Instanziierung von dynamisch geladenen Klassen

Ich stehe gerade vor dem Problem dass ich Klassen aus einer externen SWF Datei instanziieren möchte. Die SWF Datei wird mit Hilfe eines Loaders geladen.

Einen Weg dies zu tun habe ich im Blog von Scott Morgan gefunden.  <Link>

Dazu wird nach dem erfolgreichen Laden der externen SWF Datei eine neue Klasse definiert:

var NewClass:Class = loader.content.loaderInfo.applicationDomain.getDefinition("klasse") as Class;

Danach kann man mit Hilfe des new Operators die Klasse jederzeit instanziieren:

var neueInstanz:MovieClip = MovieClip(new NewClass());

Ein Problem entsteht leider wenn die geladene Klasse weitere Klassen verwendet welche mit einem Symbol aus der Bibliothek verknüpft sind. Diese Verknüpfung scheint beim Import verloren zu gehen. Beispiel:

Bibliothek vom externen MovieClip:

  • Symbol “Raum” der Klasse “CRaum”
  • Symbol “Stuhl” der Klasse  “CStuhl”

Der Raum enthält verschiedene Instanzen der Klasse CStuhl

Wenn man nun den externen MC lädt und wie oben beschrieben eine neue Klasse instanziiert meldet Flash einen “TypeError: Error #1034″. Die Klasse MovieClip#234 kann nicht in CStuhl umgewandelt werden.  Ich werde mich dann mal auf Fehlersuche begeben und bei Erfolg hier meine Lösung posten.

[EDIT] Ein Schlüsselwort ist wohl die ApplicationDomain. Ein paar Hinweise gibt es bei Adobe <Link>. Aber so funktionieren tut es dennoch nicht.