在flash中缩放图像以匹配html中定义的大小

时间:2008-12-23 03:49:46

标签: flash cs3

我有一个flash动画,可以从xml文件中动态加载图像。我想在不同的页面上重复使用这个.swf文件,但是第1页上的图像都是400 x 200,而第2页上的图像都是745 x 422.当我尝试在另一页上重复使用时,加载的图像会缩小(调整大小) - 我希望它们匹配宽度/高度中定义的最新值,但它们会根据舞台的缩放方式进行缩放。

我使用加载程序(AS3)将图像放在容器上(精灵)

slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));

我已经尝试过制作各种尺寸的舞台,但如果可能的话,我真的希望它是无关紧要的 - 即:50 x 50.然后在html中,宽度/高度将被设置为图像的宽度/高度正在装载。

我不是一个闪存向导所以请原谅我,如果我不清楚,我会尽量提供更多的见解。

3 个答案:

答案 0 :(得分:2)

一些事情......首先,您需要指定您的应用程序不扩展。 (AS3代码)

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

然后加载图像后(向slideLoader对象添加一个监听器),使用flash的ExternalInterface类执行javascript函数。

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';
}

答案 1 :(得分:0)

我很抱歉我手边没有代码,但我知道你可以选择在启动时在画布上设置一个无调整大小。

理想情况下,您可以通过embed标签的属性传递高度/宽度,在画布上没有调整大小,并使用传入的尺寸来设置图像尺寸。

答案 2 :(得分:0)

我相信就是这样:

fscommand("allowscale","false");