Убедитесь, что ваш контент не масштабируется:
stage.scaleMode = StageScaleMode.NO_SCALE;
Это заставит Flash обрабатывать свою область отображения как абсолютный размер, поэтому при расширении контейнера у него будет больше пикселей для игры. Читайте о масштабных режимах здесь .
Приложение: на основе ваших комментариев, быстрое обновление в порядке. Существуют (только!) Три вещи, которые влияют на масштабирование содержимого Flash:
- Размер контейнера (то есть размер вашего тега вставки, если вы используете браузер, или размер окна Flash Player, если вы тестируете SWF локально)
- Размер рабочей области (т.е. размер рабочей области во время публикации - размер, который вы видите в инспекторе свойств инструмента разработки, когда у вас ничего не выбрано)
- Режим масштабирования (который, как вы заметили, является глобальным свойством - там только одна сцена, на каждый фрагмент ролика есть только ссылка)
Что происходит так: если режим масштабирования установлен на «без масштаба», то Flash полностью игнорирует размер рабочей области и просто отображает ваш контент без масштабирования. Если ваш режим масштабирования отличается от «без масштабирования», то Flash масштабирует ваш контент так, чтобы размер рабочей области соответствовал размеру контейнера. (Различные настройки режима масштабирования просто определяют, будет ли Flash изменять соотношение сторон и соответствует ли оно внутренним или внешним размерам, когда сцена и контейнер имеют разные аспекты.)
Теперь вот немного хитрости. Если вы хотите, чтобы ваш контент работал по-разному, когда контейнер меняет размер (и это происходит, когда вы переходите в полноэкранный режим), вам нужно использовать «без масштаба». Причина в том, что когда Flash обрабатывает масштабирование, ваш контент всегда «думает», что размер контейнера равен размеру рабочей области. То есть, если размер рабочей области был 800x600, а размер контейнера увеличен до 1024x768, Flash сообщает вашему контенту, что контейнер все еще имеет размер 800x600, и масштабируется независимо от того, что показывает ваш контент. Если вы используете «без масштаба», то Flash сообщает вашему контенту реальный размер контейнера и предполагает, что вы будете выполнять свое собственное масштабирование.
Это основы. Теперь перейдем к решению вашей проблемы, вот что вам, вероятно, нужно сделать.
- Убедитесь, что режим масштабирования не установлен.
- Когда вы загружаете свой контент, масштабируйте его до того размера, который вам нужен. Вы можете запросить
stage.stageHeight
и stage.stageWidth
, чтобы узнать текущий размер контейнера.
- Зарегистрируйтесь, чтобы получать события, когда размер сцены меняется, и когда это происходит, измените масштаб ваших изображений так, как вы хотите, чтобы они отображались.
Вот пример кода для начала работы с третьим пунктом:
stage.addEventListener( Event.RESIZE, onStageResize );
// ...
function onStageResize( e:Event ) {
myImg.width = stage.stageWidth;
myImg.height = stage.stageHeight;
// or whatever
}
Надеюсь, это поможет!