Изменить размер окна с ActionScript 3.0 - PullRequest
6 голосов
/ 09 марта 2009

Есть ли способ изменить размер всего проекта Flash, используя Actionscript или какой-либо другой метод?

Я создал приложение Flash CS3 1024x768, но при более внимательном рассмотрении спецификаций теперь я понимаю, что оно должно быть 800x600. Вместо того, чтобы вручную делать все меньше, я хотел бы изменить размер окна, как будто кто-то перетаскивает внешний край. Или, возможно, добавить кнопку, которая позволяет переключаться между 1024x768 и 800x600. Это возможно?

Я имею в виду что-то вроде этого:

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

Ответы [ 4 ]

4 голосов
/ 09 марта 2009

Да stageWidth и stageHeight доступны только для чтения, несмотря на документы. Но если SWF-файл внедрен в веб-страницу, то изменение ширины и высоты его элемента приведет к изменению размера рабочей области, а scaleMode определит, как это обрабатывается. Все SWF-файлы на моем веб-сайте Enjoy3D делают это при изменении размера окна ...

1 голос
/ 10 марта 2009

Если вы хотите, вы можете просто отредактировать HTML-оболочку для вашего SWF-файла и сказать, будут ли новые измерения, хотя, боюсь, растеризованные медиафайлы будут пикселированными даже при сокращении. Лучше всего сжать все, даже если вы этого не хотите.

Если вам действительно нужно сделать это во флэш-памяти, используйте класс ExternalInterface пакета flash.external для вызова функции JavaScript в вашем HTML. Убедитесь, что ваш swf находится внутри div и установлен на 100% высоты и ширины div. Теперь вы просто измените размер div с помощью JavaScript через Actionscript.

Убедитесь, что у вас stage.scaleMode установлен так, как вы хотите.

Приветствия

0 голосов
/ 06 февраля 2013
  1. Вы можете установить свойства ширины и высоты в файле xxx-app.xml
  2. Если вы хотите сделать это динамически, вы можете использовать свойства FlexGlobals.topLevelApplication.width и height или устаревшие свойства Application.application.width и height
  3. Или, если у вас есть чистый проект ActionScript, из-за которого вы не можете использовать FlexGlobals или Application, вы можете из своего основного файла ActionScript (Sprite) выполнить следующее (обратите внимание, что этап должен быть инициализирован перед этим)

    width = WIDTH;
    height = HEIGHT;
    stage.stageWidth = WIDTH;
    stage.stageHeight = HEIGHT;
    stage.nativeWindow.width = WIDTH;
    stage.nativeWindow.height = HEIGHT;
    
0 голосов
/ 09 марта 2009

Вы не можете изменить ширину и высоту сцены из Actionscript, эти свойства доступны только для чтения.

Не могли бы вы просто установить размер свойств рабочей области (я предполагаю, что вы используете Flash здесь) до 800 на 600, прежде чем компилировать свой SWF?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...