Вопрос

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

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

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

stage.stageWidth = 800;
stage.stageHeight = 600;
Это было полезно?

Решение

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

Другие советы

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

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

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

Ваше здоровье

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

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

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

    width = WIDTH;
    height = HEIGHT;
    stage.stageWidth = WIDTH;
    stage.stageHeight = HEIGHT;
    stage.nativeWindow.width = WIDTH;
    stage.nativeWindow.height = HEIGHT;
    
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top