Frage

Lassen Sie mich das Problem präsentieren erste. Ich brauche alle Bilder zu laden, die ich von außen in meinem Projekt verwendet haben, ohne die Einbettung. Die Bilder sind entweder in Fellen oder als Symbole für Gegenstände in den Bäumen. Ich kam in der IconUtility Klasse hier Ich war in der Lage, ihn zu ändern und sie für Bäume verwenden, aber das Problem ist, dass wir nicht iconutility für die gleiche Komponente verwenden können 2 verschiedene Skin zu setzen (wie für eine Schaltfläche - upSkin downskin). Ich konnte nicht mit iconutility eine Abhilfe denken. Ist es möglich, einbetten zu simulieren und eine Klasse dynamisch und gibt die Klasse zur Laufzeit erstellen?

War es hilfreich?

Lösung

die einfachste Sache, diese Dinge zu erreichen, ist ein / mehrere SWF-Dateien enthalten, Ihr Vermögen zu erstellen, laden, und dann die Klassen ziehen von dort aus (das heißt von der geladenen SWF-Dateien Anwendungsdomäne) ...

Es gibt mehrere Lösungen an, dass:

  • hardcore-Version ist diese Bilder in ByteArrays mit URLLoader zu laden, und dann eine neue ByteArray zu schaffen, das wird eine SWF-Datei sein, die eingebetteten Elemente und die notwendigen Befehle enthält sie mit Klassen zu verbinden ... Sie könnte Wanna ein Blick auf Funken swfassist ...
  • ein wenig einfacher und performante (da Sie dies nur einmal tun), ist, dass auf dem Server zu tun ... hier konnte man
    • verwenden Sie einfach die flex Compiler
    • Verwendung swfmill
    • einige Bibliotheken für die Manipulation von swf, wie ming
    • do it yourself, von Hand ...:)

Hoffnung, die hilft

Bearbeiten die zweite Lösung über Vermögenswerte auf dem Server, mit einem geeigneten Werkzeug ... oder Codierung das Werkzeug selbst erstellen, aber das war eher ein Witz ... :) .. i. realisiert werden, der Link zu der flex Compiler falsch war ... wäre die Idee, einfach, um es in Ihren Web-Server zu anschließen, und dann einige Actionscript kompiliert haben, das wird den Einbettungs tun ... so würden Sie eine generieren Actionscript-Datei wie folgt aus:

package {
    import flash.display.Sprite;
    import flash.utils.describeType;
    public class Assets extends Sprite {
        [Embed(source='asset_1_Location')]
        public static var asset_1:Class;
        [Embed(source='asset_2_Location')]
        public static var asset_2:Class;
        ...
        [Embed(source='asset_n_Location')]
        public static var asset_n:Class;    
        public function Assets() { }
        public static function getAll():Object {
            var ret:Object = { };
            for each (var x:XML in describeType(Assets).variable.(@type=="Class")) {
                var name:String =  x.@name;
                ret[name] = Assets[name];
            }
            return ret;
        }
    }
}

dann haben die Flex-Compiler kompilieren ... wenn geladen, Extrahieren von Daten mit Loader :: ApplicationDomain.getDefinition ( „Assets“). GetAll (), die Sie erhalten einen Schlüssel-Wert-Karte mit allen Klassen benötigt. ..

mit anderen Werkzeugen, wäre es anders funktionieren, aber ich hoffe, dass dies verdeutlicht, wie es sollte funktionieren ...

auf dem Server benötigen Sie einen Dienst, die diese Anlage swfs für Sie bauen, und sie zwischenspeichern ... so senden Sie eine POST-Anfrage nach oben, zum Beispiel mit einer JSON-Array von Dateien / Bilder, die Sie brauchen, und es Registrieren Sie sich zurück, um die swf geben ... der Server sollte angemessenes Caching natürlich tun ...

Hoffnung, jetzt ist es hilft ...:)

greetz

back2dos

Andere Tipps

Diese war das, was ich gesucht habe ... der Autor behauptet, dass er nicht in der Lage war, es zu benutzen für Taste Haut

Leider
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top