Масштабирование определённой области флеш-плеера

Продолжим тему полноэкранного режима flash-плеера, но теперь рассмотрим вывод на весь экран не всего флеш-ролика, а только определённой области на сцене флеш-ролика. Да, такое тоже возможно осуществить средствами ActionScript 3.0. Делается это с помощью свойства fullScreenSourceRect класса Stage. При этом свойству fullScreenSourceRect в качестве значения передаётся область, которую надо вывести на весь экран.

Давайте для примера выведем на весь экран область флеш-ролика, которая будет иметь размеры 300 X 150 и координаты (50,50). Для большей наглядности я выделил данную область красной рамкой (смотри расположенный ниже флеш-ролик).

Код ActionScript 3.0:

/* кнопка перехода в полноэкранный режим */ btn.addEventListener(MouseEvent.CLICK,onFullScreenFlash); function onFullScreenFlash(event:MouseEvent):void { /* если флеш-плеер в данный момент не находится в полноэкранном режиме */ if (stage.displayState == StageDisplayState.NORMAL) { /* выводим на весь экран заданную область флеш-ролика */ stage.fullScreenSourceRect = new Rectangle(50,50,300,150); /* переходим в полноэкранный режим */ stage.displayState = StageDisplayState.FULL_SCREEN; } /* иначе */ else { /* выходим из полноэкранного режима */ stage.displayState = StageDisplayState.NORMAL; } }

Основная часть кода взята из предыдущего поста и второй раз её рассматривать не будем. Отличие здесь заключается именно в применении свойства fullScreenSourceRect. Этому свойству присваивается экземпляр класса Rectangle, у которого четыре параметра:

- положение масштабируемой области по оси x;

- положение масштабируемой области по оси y;

- ширина масштабируемой области;

- высота масштабируемой области.

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

А теперь наглядный пример:

Загрузить Adobe Flash Player

Нажмите на рисунок лупы, чтобы увеличить/уменьшить выделенную область флеш-ролика.

Естественно, можно в качестве области масштабирования указать весь экран флеш-ролика.

Код ActionScript 3.0:

/* кнопка перехода в полноэкранный режим */ btn.addEventListener(MouseEvent.CLICK,onFullScreenFlash); function onFullScreenFlash(event:MouseEvent):void { /* если флеш-плеер в данный момент не находится в полноэкранном режиме */ if (stage.displayState == StageDisplayState.NORMAL) { /* выводим на весь экран заданную область флеш-ролика */ stage.fullScreenSourceRect = new Rectangle(0,0,stage.stageWidth,stage.stageHeight); /* переходим в полноэкранный режим */ stage.displayState = StageDisplayState.FULL_SCREEN; } /* иначе */ else { /* выходим из полноэкранного режима */ stage.displayState = StageDisplayState.NORMAL; } }

Зачем это надо? Ну, по заверениям разработчиков, этот способ полноэкранного вывода флеш-ролика более быстрый и менее ресурсоёмкий.

Исходник под Adobe Flash CS5.5 и html-код вставки скачать можно здесь.

Примечания:

[!] У меня упорно не хотело работать Esc для выхода из полноэкранного режима. Причины я так и не понял. Впрочем, сочетание клавиш Alt + F4 работало исправно.

Автор: admin

Дата добавления: 2011-11-28

Просмотров: 5733

Рейтинг поста: +3-

Правила перепечатки

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика