Масштабируйте изображение во flash в соответствии с размером, определенным в html
Вопрос
У меня есть флэш-фильм, который динамически загружает изображения из xml-файла.Я хочу повторно использовать этот swf-файл на разных страницах, однако все изображения на странице 1 имеют размер 400 x 200, а изображения на странице 2 - 745 x 422.Когда я пытаюсь повторно использовать это на другой странице, загруженные изображения уменьшаются (изменяют размер) - я бы хотел, чтобы они соответствовали тому, что определено в ширине / высоте, но они масштабируются в зависимости от того, как масштабируется сцена.
я использую загрузчик (AS3) для изображения, которое помещает их в контейнер (спрайт)
slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
Я пробовал создавать сцену разных размеров для начала, но мне бы очень хотелось, чтобы она была по возможности невзаимной, т.е.:50 х 50.Затем в html ширина / высота будут установлены на ширину / высоту загружаемых изображений.
Я не мастер флэш-памяти, поэтому, пожалуйста, простите меня, если мне не ясно, я постараюсь дать больше информации, если это необходимо.
Решение
Пара вещей...во-первых, вам нужно указать, что ваше приложение не должно масштабироваться.(Код AS3)
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Затем, как только ваше изображение будет загружено (добавьте прослушиватель к объекту slideLoader), выполните функцию javascript, используя класс ExternalInterface от flash.
ExternalInterface.call('resizeFlashMovie', slideLoader.width, slideLoader.height);
И ваша функция javascript была бы чем-то вроде этого:
function resizeFlashMovie(width, height) {
var flash = document.getElementById('yourFlashMovieId');
flash.style.width = width+'px';
flash.style.height = height+'px';
}
Другие советы
Я приношу извинения, у меня нет кода под рукой, но я знаю, что у вас есть возможность установить ограничение на изменение размера холста при запуске.
В идеале, вы можете передать высоту / ширину с помощью атрибутов тега embed, изменить размер холста без изменения размера и использовать переданные размеры для настройки размеров вашего изображения.
Я верю, что это оно:
fscommand("allowscale","false");