Hier ist die Situation - ich habe eine Shell, die eine externe .swf lädt. Nun, das .swf ist 800x600, aber es ist ein Animationsstück, und es gibt Elemente, die von der Bühne ausgehen. Wenn ich die .swf in die Shell lade und das Attribut width aufruft, wird 1200 zurückgegeben - weil es die Elemente enthält, die aus der Stufe ausbrechen.
Das ist nicht das, was ich möchte - im Idealfall gäbe es zwei Eigenschaften, eine für die zurückgegebene 'berechnete Breite' und eine für die 'Standardbreite'. Gibt es diese Eigenschaften und wenn nicht, was ist die beste Problemumgehung?
Die Breite und Höhe der geladenen SWF-Datei, wie von der FLA definiert, mit der sie erstellt wurde, finden Sie im Loader
-Objekt, in das Sie die SWF-Datei geladen haben.
Dadurch werden Ihnen immer die Dimensionen angezeigt, die in den FLA-Eigenschaften definiert sind. Es macht keinen Unterschied, ob Bilder, MovieClips oder was hast du von der Bühne ausgedehnt.
Die Eigenschaften stage.stageWidth
und stage.stageHeight
geben immer die Breite der Bühne zurück, die Bühne ist immer die oberste SWF. Mit anderen Worten, es wird immer die Dimensionen der Bühne der Shell darstellen. In einer Flash-Anwendung gibt es immer nur eine Stufe.
Es ist sehr wahrscheinlich, dass Mark das Inhaltslade-Info Objekt verwendet enthält die richtige Breite und Höhe. Ich habe mich selbst nie überprüft, also kann ich es nicht garantieren. Die Doktoren sagen "nominell" und kontrastieren es mit "tatsächlich", so scheint es vernünftig.
Es gibt noch ein paar andere Möglichkeiten. Sie können das externe swf maskieren. Erstellen Sie eine Maske mit der Größe der Bühne und legen Sie den gesamten Inhalt darunter. Eine weitere Idee besteht darin, einen Movieclip basierend auf einer rechteckigen Form zu erstellen, indem Sie ihn auf 0: 0, 0: 0 setzen und die Breite und Höhe an die Bühne anpassen. Geben Sie ihm einen Instanznamen und dann, wenn es geladen ist, verwenden Sie diesen Wert für die Größe.
Tags und Links flash actionscript-3 external