Нет встроенной опции для того, что вы описываете, но это легко достигается с помощью сценариев, либо изнутри Flash, либо со стороны JavaScript. В конце ответа я добавлю фрагмент кода, который должен помочь вам начать работу.
Сначала, однако, позвольте мне предложить то, что вы, вероятно, должны делать вместо этого. Подумайте, что происходит, когда появляется пользователь, у которого (независимо от размера монитора) нет полноэкранного браузера. Если вы реализуете, как вы описываете, они увидят ваш сайт в произвольно небольшом размере, в зависимости от размера их браузера, и вполне возможно увидят что-то достаточно маленькое, чтобы быть нечитаемым и / или непригодным для использования.
Теперь, конечно, вы могли бы справиться с этим, дополнительно внедрив минимальный размер, ниже которого Flash перестает масштабироваться, но затем вы начинаете много думать о том, как пользователи захотят видеть ваш сайт. Вместо этого вам следует спросить, что бы пользователь с маленьким монитором (или с небольшим окном браузера) ожидал сайта? И ответ на этот вопрос - показать сайт в полном размере и добавить полосы прокрутки. И за мои деньги это то, что должен делать ваш сайт.
Таким образом, в ваш HTML (или в настройках экспорта HTML в Flash) вставьте SWF-файл в контейнер 1000x750. Это предотвратит масштабирование SWF для всех - на вашем мониторе вы увидите немасштабированный сайт по центру (или выровненный по левому краю или что-то еще) в пределах окна, а на меньших мониторах вы увидите весь сайт без масштабирования с полосами прокрутки браузера. .
В конце концов, вы должны осознать, что, несмотря на то, что содержимое Flash по своей природе масштабируется, большинство веб-сайтов состоят из текста и изображений, а это не так. Несмотря на то, что вы можете уменьшить масштаб во время выполнения, обычно это не то, чего ожидает пользователь, и это обычно не делает сайт хорошо выглядящим.
Теперь, как и было обещано, вот фрагмент кода Flash AS3, который должен дать вам достаточно возможностей для того, чтобы делать все что угодно с масштабированием. Это должно дать вам желаемый эффект, если вы опубликовали Flash в контейнере, который занимает все окно браузера, с масштабируемым режимом «без масштаба».
// perform initial size check
checkStageSize();
// register to re-check when stage size changes
stage.addEventListener( Event.RESIZE, onResize, false, 0, true );
function onResize( e:Event ) {
checkStageSize();
}
// do the scaling here
function checkStageSize():void {
var wid:Number = stage.stageWidth;
var hi:Number = stage.stageHeight;
var needToScaleDown:Boolean = (wid < 550); // or some other test
if ( needToScaleDown ) {
var scale:Number = wid/550;
someContent.scaleX = someContent.scaleY = scale;
} else {
someContent.scaleX = someContent.scaleY = 1;
}
}
Это предполагает, что «someContent» относится к контейнеру, содержащему все, что вы хотите масштабировать, с его точкой регистрации в начале этапа (верхний левый угол). Нет простого способа автоматически масштабировать весь фильм, поэтому вы захотите поместить свой контент в контейнерный видеоклип и вместо этого масштабировать его.
Не стесняйтесь помещать приведенный выше фрагмент в действие кадра на сцене, изменяйте «someContent», чтобы ссылаться на контейнер, который вы можете масштабировать, и поэкспериментируйте с ним. Но я действительно думаю, что вы в конечном итоге решите, что удобнее всего просто показывать сайт в масштабе.