2009-03-08 10 views
6

Gibt es eine Möglichkeit, ein gesamtes Flash-Projekt mit Actionscript oder eine andere Methode zu ändern?Größe ändern Fenster mit Actionscript 3.0

Ich habe eine 1024x768 Flash CS3-Anwendung erstellt, aber bei genauerer Betrachtung der Spezifikationen merke ich, dass es 800x600 sein muss. Anstatt alles manuell kleiner zu machen, möchte ich die Größe des Fensters ändern, als ob jemand die äußere Kante ziehen würde. Oder fügen Sie vielleicht eine Schaltfläche hinzu, mit der Sie zwischen 1024x768 und 800x600 wechseln können. Ist das möglich?

Ich meine etwas wie folgt aus:

stage.stageWidth = 800; 
stage.stageHeight = 600; 

Antwort

4

Ja stageWidth und stageHeight werden trotz der Docs nur gelesen. Wenn die SWF-Datei jedoch in eine Webseite eingebettet ist, wird durch Ändern der Elementbreite und -höhe die Bühnengröße geändert und scaleMode bestimmt, wie diese behandelt wird. All SWF-Dateien in my Enjoy3D web site tun dies auf Fenster Resize ...

+0

Ahh ... aber es ist nicht in einer Website. Aber es ist in Ordnung, ich habe festgestellt, dass du alles auf der Bühne zu einem neuen Movieclip machen kannst, verändere das und zerlege den Movieclip dann wieder. – pypmannetjies

0

Sie können nicht auf die Bühne Breite und Höhe von Actionscript ändern, werden diese Eigenschaften schreibgeschützt.

Konnte man nicht einfach die Größe der Stage-Eigenschaften (ich nehme an, Sie verwenden Flash hier) auf 800 mal 600 einstellen, bevor Sie Ihr swf kompilieren?

+0

Nein, es ändert die Größe nur auf die Bühne und die Objekte nicht auf der Bühne. – pypmannetjies

1

Wenn Sie wollen Sie nur könnten den HTML-Wrapper für Ihre SWF bearbeiten und feststellen, ob die neuen Dimensionen, obwohl ich Angst und gerasterten Medien werden auch pixelig, wenn schrumpfen. Es ist am besten, alles zu verkleinern, auch wenn du es nicht willst.

Wenn Sie es nur in Flash benötigen, verwenden Sie die ExternalInterface-Klasse des flash.external-Pakets, um eine JavaScript-Funktion in Ihrem HTML aufzurufen. Stellen Sie sicher, dass sich Ihr swf in einem div befindet und auf 100% der Höhe und Breite des div gesetzt ist. Jetzt ändern Sie lediglich die Größe des Divs per JavaScript über Actionscript.

Stellen Sie sicher, dass Sie stage.scaleMode so eingestellt haben, wie Sie es möchten.

Prost

0
  1. Sie könnten die Breite und Höhe Eigenschaften in Ihrer xxx-app.xml Datei
  2. gesetzt Wenn Sie es dynamisch tun möchten, können Sie FlexGlobals.topLevelApplication.width und Höheneigenschaften verwenden könnte oder Die veralteten Eigenschaften Application.application.width und height
  3. Oder wenn Sie ein reines ActionScript-Projekt haben, in dem Sie FlexGlobals oder Application nicht ausführen können, können Sie aus Ihrer Haupt-ActionScript-Datei (Sprite) Folgendes ausführen (beachten Sie, dass die Stufe sein muss) vor diesem Schritt initialisiert)

    width = WIDTH; 
    height = HEIGHT; 
    stage.stageWidth = WIDTH; 
    stage.stageHeight = HEIGHT; 
    stage.nativeWindow.width = WIDTH; 
    stage.nativeWindow.height = HEIGHT;