Laden eines eingebetteten Bildes in AS3
OK, ich fühle mich dumm Frage, aber ich habe den ganzen Nachmittag versucht, es herauszufinden, ohne Erfolg.
In AS3 ich will ein Bild hinzufügen, um der Bibliothek (nennen wir es Bild.png) und instanziieren es mit nur code.
Mir ist es gelungen, die Instanziierung einer externen Bild auf diese Weise
var pLoad:Loader = new Loader();
pLoad.load(new URLRequest("image.png"));
addChild(pLoad);
Aber egal was ich versucht habe, ich kann nicht das laden des Bildes aus der Bibliothek. Wie ist das gemacht?
Beiseite : ich habe gesehen, das
- syntax, sondern im Idealfall würde ich gerne vermeiden hartcodierten Namen des Bildes, das heißt, ich möchte, um ein Bild auszuwählen, und erzeugen so das Bild name, ein Programm.
Wie sind Sie das laden der Bibliothek?
Nicht sicher, was du meinst. Ich meine "library" in der Registerkarte "Bibliothek" in der Flash-IDE. Ich denke, diese geladen, als Teil der SWF-selbst - ist das falsch?
Nein, aber Sie müssen auf Sie verweisen durch deren ID. Hast du eine ID für das Bild in Ihrer Bibliothek?
Oops. Ich habe nicht verwendet Flash, also das, was ich erwähnt habe, erscheint nur die Arbeit in AS1 oder AS2. Geben Sie mir eine minute....
Ich bin ein bisschen verwirrt, warum Sie mit [Embed] - nicht gut für Sie arbeiten. Wenn Sie das Bild in Ihrer Bibliothek haben Sie immer noch manuell importieren Sie das Bild. Mit [Embed] - Sie am Ende mit einem viel mehr sauber (und gut gelegen - kein Graben durch die Bibliothek!) Lösung.
Nicht sicher, was du meinst. Ich meine "library" in der Registerkarte "Bibliothek" in der Flash-IDE. Ich denke, diese geladen, als Teil der SWF-selbst - ist das falsch?
Nein, aber Sie müssen auf Sie verweisen durch deren ID. Hast du eine ID für das Bild in Ihrer Bibliothek?
Oops. Ich habe nicht verwendet Flash, also das, was ich erwähnt habe, erscheint nur die Arbeit in AS1 oder AS2. Geben Sie mir eine minute....
Ich bin ein bisschen verwirrt, warum Sie mit [Embed] - nicht gut für Sie arbeiten. Wenn Sie das Bild in Ihrer Bibliothek haben Sie immer noch manuell importieren Sie das Bild. Mit [Embed] - Sie am Ende mit einem viel mehr sauber (und gut gelegen - kein Graben durch die Bibliothek!) Lösung.
InformationsquelleAutor ggambett | 2009-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nun, zunächst einmal müssen Sie öffnen Sie das Eigenschaften-Fenster der Bibliothek und überprüfen Sie die "Export für Actionscript" aktivieren, danach einfach eine schöne Referenz auf das Objekt in der Klasse Textfeldern, für dieses Beispiel, ich nenne es "MyImage", ok. Lassen Sie uns nun den code erhalten.
Das ist es, funktioniert schön hier.
Die Sache ist die, ich brauche ein Sprite oder etwas, was ich kann, Transformationen, insbesondere die Skalierung und Drehung - von dem, was ich gelesen habe, Bitmaps nicht. Meine eigene Antwort unten geschrieben, verwendet die gleiche grundlegende Idee, die zum laden der bitmap-Daten und zeichnen Sie es in ein Sprite, aber ich hoffe immer noch, es gibt einen besseren Weg.
Sie können immer fügen Sie Ihre bitmap-Objekt auf ein Sprite-Objekt und führen Sie dann die änderungen, die Sie wollen.
InformationsquelleAutor ruyadorno
Die Flash-Bibliothek ist eine ganz mystische Wesen, aber wenn Sie richtig benutzt wird, kann es durchaus ein schöner Weg, um Ihre setup-Flash-workflows... ich werde versuchen zu klären, alle diese:
Bibliothek Symbole mit dem "Export für ActionScript" - option, werden tatsächlich kompilierten Klassen. Wenn es keine class Datei mit dem gleichen Klassennamen, Flash erstellen, auf der compilation mit dem gleichen Namen deklarieren Sie in der "Klasse" - Feld. Das bedeutet, in deinem Fall, wenn der name der Klasse ist "Bild.png", es tatsächlich zu schaffen, ein "png" - Klasse in der "Bild" - Paket erweitern BitmapData (natürlich wäre es klüger, es geben ein anderes classname, sagen proyect.Bibliothek."MyImage")... das heißt, Sie brauchen nicht getDefinitionByName, nur instanziieren Sie es wie mit jeder anderen Klasse:
Dann müssen Sie eine Bitmap-Instanz in der Lage sein, um es der displayList:
All dies gilt für jedes Symbol aus der Bibliothek (außer der Grafik)... sagen wir mal Sie "export für AS" ein sound-symbol als "Projekt.Bibliothek.MySound", dann können Sie genau dies tun:
Wenn Sie eine Klasse Datei mit dem gleichen Namen wie in Ihrer Bibliothek-symbol, Flash-versuchen wird, es zu benutzen (wenn es erbt die Standard-Basis-Klasse).
Sie werden feststellen, dass alle diese Symbole haben eine editierbare Basis-Klasse-Feld. Sie können auch eine benutzerdefinierte Klasse, in der es, so lange wie es inherts der Standard-Basis-Klasse... In bitmaps flash.display.BitmapData-Klänge flash.media.Sound, fonts sind flash.text.Schriftart, movieclips flash.display.MovieClip, etc...
Im Fall von Videoclips, solange Sie nicht über frames, Sie können auch eine Unterklasse von Sprite.
All dies, während es klingt ein wenig mystisch, wenn Sie gut angewandt wird, kann es zu Recht einen komfortablen workflow sowohl für Designer und Entwickler, die mit Flash arbeiten. Zum Beispiel, können Sie einfach setup ein nettes Paket mit dem ganzen UI-definition, und machen Sie Ihre Designer nutzen diese Basis-Klassen, die zum zusammenstellen der Grafiken und Animationen.
InformationsquelleAutor Cay
Einer Verbesserung auf ruyadorno ist Weg, wenn man schon weiß, was der classname ist, ist einfach:
Bitmaps können in Sprites einfach genug:
Dann können Sie verwandeln das sprite als normal.
n.b. Der Parameter "MyImage" sind Breite und Höhe, sondern Sie sind Platzhalter für die Unterklassen, die Sie übergeben können, nichts.
InformationsquelleAutor Chris Burt-Brown
Laut, was ich gefunden habe, das ist nirgends so einfach zu tun, in AS3, wie in früheren Versionen. Eine Methode, mit der gearbeitet wurde, zu erstellen Sie ein MovieClip zu halten das Bild, dann erstellen Sie eine Instanz des MovieClip und fügen Sie es auf die Bühne. Die andere Methode war, eine Klasse zu erstellen, die für jedes Bild, das Sie hinzufügen, dann instanziieren und fügen Sie diese Klasse auf die Bühne (die Schritte für die sich hier.
Muss es bessere Möglichkeiten, dies zu tun. Ich werde weiterhin auf der Suche.
InformationsquelleAutor Michael Todd
Sieht aus wie das funktioniert :
Hässlich aussieht und unnecesarily Komplex, obwohl. Jeder andere Weg?
InformationsquelleAutor ggambett