2008-12-23 19 views
1

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

即时通讯使用的为它们放在一个容器上的图像(精灵)装载机(AS3)

slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide][email protected])); 

我已经尝试制作阶段各种尺寸开始,但我真的很喜欢它是irrelavant如果可能的话 - 例如:50 x 50.然后在html中,宽度/高度将被设置为正在加载的图像的宽度/高度。

我不是闪光灯向导,所以请原谅我,如果我不明确,我会尽量给予更多的见解,如果需要。

回答

2

夫妇的事情......首先你需要指定应用程序不按比例。 (AS3代码)

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

然后,一旦你的图像加载(添加一个侦听到slideLoader对象),执行一个使用JavaScript函数Flash的ExternalInterface类。

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

非常感谢你,我从来没有想过:-) – schmoopy 2008-12-23 04:22:46

0

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

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

0

我相信这是它:

fscommand("allowscale","false"); 
+0

我想补充一点,在类的定义,以及对当负载事件发生时调用的函数 - 在这两种情况下,它不显示任何东西,但行为就像我点击图像(有点击事件附加) - 我做错了什么?应该在哪里使用fscommand? - 谢谢:-) – schmoopy 2008-12-23 04:10:30