在WS看到相关问题,这方面技术文章似乎挺保密,搜索不到合适的线索,网上现有的教程都是不考虑内容大小动态变化的,我来简单谈谈我的实现方法。
原贴

flash调用jpg图片,图片须100% 左右居中显示,上居顶。

分两种情况,1 图片小于浏览器尺寸:flash充满ie浏览器,既 在ie内右键任何地方都是flash右键菜单。主要是考虑不同分辨率宽度问题,图片为左右居中显示,上居顶。

2、图片大于浏览器尺寸时,既flash宽高度也会增加。

其实里面有一个flash高度随图片大小变化得问题。

实现目标:
1、FLASH能铺满WEB页
2、自动根据内容缩放其大小,如果内容太多,则WEB页出现滚动条

思路整理:
1、让flash随着屏幕全屏缩放,属于FLASH的Stage类的应用.以及在HTML里设置长宽为’100%’
2、内容太多时WEB页出现滚动条,即WEB页随情况缩放,属于WEB页的JS应用。
因此我们要从两方面着手,即FLASH部分和WEB部分

比如我要做一个菜单栏永远在最左端,flash充满ie浏览器,图片为左右居中显示,上居顶
具体实施:
1、Stage.scaleMode = “noScale”;
见帮助–Stage.scaleMode 属性
noScale 使 Flash 内容的尺寸固定,因此,即使在更改播放器窗口大小时,它仍然保持不变。如果播放器窗口比 Flash 内容小,则可能进行一些裁剪。

2、Stage.align = “t”;
见帮助–Stage.align 属性
下面列出了 align 属性的值。此处没有列出的任何值都会使 SWF 文件在 Flash Player 或浏览器区域中居中对齐,这是默认设置。
“T” 顶对齐 居中
“B” 底对齐 居中
“L” 居中 左对齐
“R” 居中 右对齐
“TL” 顶对齐 左对齐
“TR” 顶对齐 右对齐
“BL” 底对齐 左对齐
“BR” 底对齐 右对齐

3、在HTML里建立一个div,ID为flashcontent,里面放FLASH,ID名为mySwf,设置FLASH长宽为’100%’,使FLASH能最大化显示

4、在一般情况下不出滚动条,而当FLASH内的内容变大时要变换div大小,从而使滚动条出现
这里我们在WEB里加一段JS以便在FLASH中调用来缩放DIV大小:

function newSize(X,Y) {
	if(document.all && !document.getElementById) {
 		document.all['mySwf'].style.pixelWidth = X;
 		document.all['mySwf'].style.pixelHeight = Y;
	}else{
		document.getElementById('flashcontent').style.width = X;
		document.getElementById('flashcontent').style.height = Y;
	}
}

5、FLASH测试文件当内容大小变化时我们调用JS

function myScale() {
	jsCMD = "javascript:newSize("+"'100%'"+","+"'100%'"+")";
	//先切换为普通大小
	mc._width = (random(10)+1)*150;
	//宽变化在150-1500
	mc._height = (random(10)+1)*150;
	//高变化在150-1500之间
	contentH = mc._height+10;
	contentW = mc._width+10;
	contentH>Stage.height ? contentH=contentH : contentH="'100%'";
	contentW>Stage.width ? contentW=contentW : contentW="'100%'";
	jsCMD = "javascript:newSize("+contentW+","+contentH+")";
	getURL(jsCMD);
	howBig = "物体大小:"+mc._width+"X"+mc._height+"<br>调用JS:"+jsCMD;
}
my_ITV = setInterval(myScale, 2000);

这段我是做实验用,在实际情况下是要变化你的函数的,我让内容每2秒取个随机大小,然后调用JS变化WEB大小。如果大小不足一屏,则FLASH填补,如果超过一屏则变化DIV大小产生滚动条,由于FLASH设置的100%大小,因此可以随DIV变化,也就达到了重设舞台大小的效果。不过我做的这个在回缩的时候有点小问题,可能聪明的你会发现找到办法解决。其实myScale里的两次JS不要同时调用就可以了,这在实际应用时也会自然化解。
补充:每次再度重新缩放内容前就先利用JS将FLASH的舞台设置到100%X100%大,过后要段时间以载入图,然后再判断缩放

我写的比较简洁,如果有什么不明白,或者有更好方法,欢迎讨论

自己做实验时的源文件,是横向和纵向内容都会变化的,FLASH始终保持顶部居中
.HTM+.SWF+.FLA源:
点击下载此文件

其实这个方法还有很多,比如透明GIF定位法,FLASH内部滚动法。有兴趣以后写。http://www.mousebomb.org/senmao/flashIndex.htm 这是我最近一个应用