Установка свойств рабочей областиFlash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий Класс Stage переопределяет большинство свойств и методов класса DisplayObject. При вызове переопределенных свойств или методов Flash Player и AIR выдают исключение. Например, объект Stage лишен свойств x или y, поскольку его положение в качестве основного контейнера приложения фиксировано. Свойства x и y связаны с позицией экранного объекта по отношению к его контейнеру. Поскольку Stage не содержится в другом контейнере экранного объекта, эти свойства неприменимы. Примечание. Некоторые свойства и методы класса Stage доступны только для экранных объектов, которые находятся в той же изолированной программной среде, что и загруженный SWF-файл. Дополнительные сведения см. в разделе «Безопасность рабочей области».
Управление частотой кадров при воспроизведенииСвойство framerate класса Stage используется для установки частоты кадров для всех SWF-файлов, загруженных в приложение. Дополнительные сведения см. в cправочнике ActionScript® 3.0 для платформы Adobe® Flash® Platform. Управление масштабом рабочей областиКогда изменяется размер части экрана, занимаемой проигрывателями Flash Player или AIR, содержимое среды выполнения автоматически корректируется в соответствии с изменениями. Свойство scaleMode класса Stage определяет метод корректировки содержимого. Это свойство может принимать 4 разных значения, которые определяются как константы в классе flash.display.StageScaleMode:
Настройка режима масштабирования рабочей области для окон AIRСвойство scaleMode объекта Stage определяет, как рабочая область масштабирует и обрезает дочерние экранные объекты при изменении размеров окна. В AIR следует использовать только режим noScale. В этом режиме рабочая область не масштабируется. Вместо этого размер рабочей области изменяется непосредственно вместе с границами окна. При уменьшении размера окна, объекты могут обрезаться. Режимы масштабирования рабочей области предназначены для использования в таких средах, как веб-браузер, где не всегда есть возможность управлять размером или соотношением сторон рабочей области. Эти режимы позволяют выбирать наименее искаженный вариант, когда рабочая область не соответствует идеальному размеру или соотношению сторон окна приложения. В приложении AIR вы всегда управляете рабочей областью, поэтому в большинстве случаев повторное размещение содержимого или просто корректировка размеров окна дадут лучшие результаты, чем масштабирование рабочей области. В браузере и в начальном окне AIR соотношение между размером окна и начальным фактором масштабирования считывается из загруженного SWF-файла. Однако при создании объекта NativeWindow среда AIR выбирает произвольное соотношение между размером окна ил фактором масштабирования 72:1. Таким образом, если размер окна составляет 72x72 пиксела, квадрат 10x10, добавляемый в окно, отрисовывается с правильным размером 10x10 пикселов. Однако если размер окна составляет 144x144 пиксела, квадрат 10x10 масштабируется до размера 20x20 пикселов. Если все же требуется использовать режим scaleMode, а не noScale для рабочей области окна, в качестве компенсации можно задать для всех экранных объектов в окне фактор масштабирования 72 пикселов к текущей ширине и высоте рабочей области. Например, следующий код вычисляет необходимый фактор масштабирования для экранного объекта с именем client. if(newWindow.stage.scaleMode != StageScaleMode.NO_SCALE){ client.scaleX = 72/newWindow.stage.stageWidth; client.scaleY = 72/newWindow.stage.stageHeight; } Примечание. Окна Flex и HTML автоматически задают свойству scaleMode объекта Stage значение noScale. Изменение свойства scaleMode мешает работе механизмов автоматической компоновки, применяемых в окнах этих типов.
Работа в полноэкранном режимеПолноэкранный режим позволяет рабочей области ролика заполнить весь экран без каких-либо границ контейнера или меню. Свойство класса Stage displayState используется для входа и выхода из полноэкранного режима показа SWF-файла. Свойству displayState можно присвоить одно из значений, определенных для констант в классе flash.display.StageDisplayState. Чтобы включить полноэкранный режим, присвойте свойству displayState значение StageDisplayState.FULL_SCREEN: stage.displayState = StageDisplayState.FULL_SCREEN; В Flash Player к полноэкранному режиму можно перейти с помощью ActionScript только в ответ на щелчок мышью (включая правую кнопку) или нажатие клавиши. Содержимое AIR, которое выполняется в изолированной программной среде, не требует перехода к полноэкранному режиму в ответ на жест пользователя. Чтобы выключить полноэкранный режим, присвойте свойству displayState значение StageDisplayState.NORMAL. stage.displayState = StageDisplayState.NORMAL; Кроме того, пользователь может выходить из полноэкранного режима путем смещения фокуса на другое окно или с помощью одного из нескольких сочетаний клавиш: Esc (все платформы), Control-W (Windows), Command-W (Mac) или Alt-F4 (Windows). Включение полноэкранного режима в Flash PlayerДля включения полноэкранного режима для SWF-файла, встроенного в HTML-страницу, код HTML, встраиваемый в Flash Player, должен включать тег param, атрибут embed с именем allowFullScreen и значение true, как указано ниже: <object> ... <param name="allowFullScreen" value="true" /> <embed ... allowfullscreen="true" /> </object> В инструменте разработки Flash выберите «Файл» > «Параметры публикации» и в открывшемся окне на вкладке «HTML» укажите шаблон «Только Flash — разрешить полноэкранный режим». В Flex проверьте, что шаблон HTML включает теги <object> и <embed>, поддерживающие полноэкранный режим. Если на веб-странице при создании тегов для встраивания SWF-файлов используется язык JavaScript, то для добавления тега allowFullScreen param и атрибута необходимо лишь изменить JavaScript. Например, если в вашей HTML-странице используется функция AC_FL_RunContent() (которая применяется на страницах HTML, созданных с помощью Flash Professional и Flash Builder), необходимо следующим образом добавить параметр allowFullScreen к этому вызову функции: AC_FL_RunContent( ... 'allowFullScreen','true', ... ); //end AC code Это не относится к SWF-файлам, запущенным в автономной программе Flash Player. Примечание. Если для режима окна (wmode в HTML) выбрать значение «Непрозрачный безоконный» (opaque) или «Прозрачный безоконный» (transparent), окно в полноэкранном режиме всегда будет непрозрачным.
Существуют также ограничения системы безопасности на использование полноэкранного режима Flash Player в обозревателе. Эти ограничения описаны в разделе «Безопасность». Полноэкранный режим и масштабированиеСвойства Stage.fullScreenHeight и Stage.fullScreenWidth возвращают высоту и ширину монитора, которые используются при переходе к размеру во весь экран, если он выполняется немедленно. Эти значения могут быть неправильными, если пользователь имеет возможность переместить браузер с одного монитора на другой после получения этих значений, но до перехода в полноэкранный режим. Если эти значения были получены в том же обработчике событий, где свойству Stage.displayState было присвоено значение StageDisplayState.FULL_SCREEN, то значения являются верными. При наличии нескольких подключенных мониторов, содержимое SWF полностью займет только один из них. Flash Player и AIR используют метрику, чтобы определить, какой из мониторов содержит большую часть SWF-файла, выбирая этот монитор для полноэкранного режима. Свойства fullScreenHeight и fullScreenWidth только отражают размер монитора, используемого для полноэкранного режима. Дополнительные сведения см. в описаниях свойств Stage.fullScreenHeight и Stage.fullScreenWidth в cправочнике ActionScript® 3.0 для платформы Adobe® Flash® Platform. Масштабирование рабочей области в полноэкранном режиме протекает так же, как и в обычном режиме. Масштабирование управляется свойством scaleMode класса Stage. Если свойству scaleMode присвоено значение StageScaleMode.NO_SCALE, свойства stageWidth и stageHeight рабочей области изменяются, отражая размер области экрана, занятой SWF-файлом (в данном случае это весь экран). При просмотре в обозревателе параметр HTML управляет этой настройкой. Событие fullScreen класса Stage используется, чтобы узнать, включен или выключен полноэкранный режим, и среагировать соответствующим образом. Например, может потребоваться изменить положение, добавить или удалить элементы с экрана при переходе к полноэкранному режиму или выходе из него как в этом примере: import flash.events.FullScreenEvent; function fullScreenRedraw(event:FullScreenEvent):void { if (event.fullScreen) { // Remove input text fields. // Add a button that closes full-screen mode. } else { // Re-add input text fields. // Remove the button that closes full-screen mode. } } mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw); Как показано в этом коде, объект события для события fullScreen является экземпляром класса flash.events.FullScreenEvent, включающего свойство fullScreen, которое указывает, включен ли полноэкранный режим (true) или нет (false). Поддержка клавиатуры в полноэкранном режимеПри запуске Flash Player в обозревателе в полноэкранном режиме все сценарии ActionScript, связанные с использованием клавиатуры, например события клавиатуры или ввод текста в экземпляры TextField, отключаются. Исключениями (клавиши, которые остаются доступными) являются:
Данные ограничения не действуют для содержимого SWF, выполняемого в автономном Flash Player или в приложении AIR. AIR поддерживает интерактивный полноэкранный режим, который допускает ввод с клавиатуры. Аппаратное масштабирование в полноэкранном режимеСвойство fullScreenSourceRect класса Stage можно использовать для того, чтобы заставить Flash Player или AIR масштабировать определенную зону рабочей области, переведя ее в режим полноэкранного показа. При наличии такой возможности Flash Player и AIR используют аппаратное масштабирование средствами доступного в системе пользователя видеоадаптера, что позволяет отображать содержимое быстрее, чем при использовании программного масштабирования. Чтобы использовать аппаратное масштабирование, необходимо задать полноэкранный режим для всей рабочей области или ее части. Следующий код ActionScript 3.0 задает полноэкранный режим для всей рабочей области. import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; } Когда этому свойству присвоено значение допустимого прямоугольника, а свойство displayState настроено на полноэкранный режим, проигрыватель Flash Player и AIR масштабируют заданную область. Фактический размер рабочей области в пикселах в ActionScript не изменяется. Flash Player и AIR используют ограничение минимального размера прямоугольника при показе стандартного сообщения «Нажмите «Esc» для выхода из полноэкранного режима». Обычно минимальный размер составляет около 260 на 30 пикселов, но он может варьироваться в зависимости от платформы и версии Flash Player. Свойство fullScreenSourceRect можно настраивать, только когда проигрыватель Flash Player или AIR не находится в полноэкранном режиме. Для правильной работы этого свойства, необходимо сначала настроить именно его, а затем настроить свойство displayState на работу в полноэкранном режиме. Чтобы включить масштабирование, задайте для свойства fullScreenSourceRect объект прямоугольника. stage.fullScreenSourceRect = new Rectangle(0,0,320,240); Чтобы отключить масштабирование, присвойте свойству fullScreenSourceRect значение null. stage.fullScreenSourceRect = null; Чтобы задействовать все возможные аппаратные функции ускорения в Flash Player, включите их в диалоговом окне «Свойства Flash Player». Чтобы открыть диалоговое окно с настройками, щелкните правой кнопкой мыши (Windows) или осуществите щелчок правой кнопкой мыши при зажатой клавише Control (Mac) по содержимому Flash Player в вашем обозревателе. Перейдите на первую вкладку, «Отображение», и установите флажок «Включить аппаратное ускорение». Режимы окна: прямой и совмещенный с использованием графического процессораВ проигрыватель Flash Player 10 добавлено два режима окна: прямой и совмещенный с использованием графического процессора, которые можно включить через параметры публикации в инструменте разработки Flash. Эти режимы не поддерживаются в AIR. Для использования этих режимов необходимо включить аппаратное ускорение в проигрывателе Flash Player. Прямой режим использует самый быстрый и наиболее прямой путь для вывода графики на экран, что полезно при воспроизведении видео. Режим совмещения с использованием графического процессора ускоряет совмещение, используя графический процессор видеокарты. Совмещение видео — это процесс наложения нескольких слоев изображения для получения одного видеоизображения. Когда совмещение ускоряется с помощью графического процессора, оно может улучшить производительность YUV-преобразования, коррекции цвета, поворота или масштабирования и наложения YUV-преобразованием называется преобразование цветов композитных аналоговых сигналов, используемых для передачи, в модель цвета RGB (красный, зеленый, синий), которая используется видеокамерами и дисплеями. Использование графического процессора для ускорения совмещения сокращает потребление ресурсов памяти и процессора. Кроме того, это улучшает воспроизведение видео со стандартным разрешением. Соблюдайте осторожность, применяя эти режимы окна. Совмещение с использованием графического процессора может интенсивно использовать память и ресурсы центрального процессора. Если некоторые операции (такие как режимы наложения, фильтрация, обрезание или маскирование) не могут выполняться графическим процессором, они выполняются программным обеспечением. Компания Adobe рекомендует добавлять не более одного SWF-файла на HTML-страницу, когда используются эти режимы. Кроме того, их не следует включать для баннеров. Функция «Тестировать ролик» инструмента разработки Flash не использует аппаратное ускорение, но его можно использовать, выбрав опцию «Просмотр публикации». Не имеет смысла задавать в SWF-файле частоту кадров выше 60, то есть максимальной частоты обновления экрана. При использовании частоты кадров от 50 до 55 допускается пропуск кадров, который может время от времени происходить по разным причинам. Для прямого режима требуется Microsoft DirectX 9 и 128 МБ видеопамяти на платформе Windows и OpenGL для Apple Macintosh, Mac OS X 10.2 и более поздних версий. Для режима совмещения с использованием графического процессора требуется поддержка Microsoft DirectX 9 и Pixel Shader 2.0 на платформе Windows с 128 МБ видеопамяти. На платформе Mac OS X и Linux для режима совмещения с использованием графического процессора требуется OpenGL 1.5 и несколько расширений OpenGL (объект буфера кадра, мультитекстурирование, объекты шейдеров, язык шейдера, шейдер фрагмента). Режимы ускорения (direct и gpu) для отдельного SWF-файла можно активировать через диалоговое окно «Параметры публикации» в Flash в меню «Аппаратное ускорение» на вкладке «Flash». Если выбрать вариант «Нет», режим окна возвращается к значению default, transparent или opaque в соответствии с вариантом, выбранным на вкладке «HTML». |
|