网站改版,以前给客户做的flash大小不合适怎么办?那我告诉你让flash根据你指定的宽度自动调整高度
2008-12-26 09:44
651 查看
网站改版后,客户页面由窄变宽或者由宽变窄了,而客户页面上面的flash banner这个时候就不那么听话了,一般我们的做法是给flash指定一个宽度 让flash自适应高度,如下面这样的代码
Code
<embed width="100%" height="100%" src="/upfiles/uploadpic/companypic/20082xube8s.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="opaque"
或者我们把flash 的宽度指定为我们页面的宽度 Width="770px" 可是页面的显示效果却是这样的:
两边黑的多出的东西就是由于flash自动适应后的出现的问题(如果你的flash宽度正好是770的话是不会出现此类问题的!)
那好了,我们给flash指定一个宽度再给它指定一个高度,不让它自适应,可是你怎么知道他的高度呢?随便指定一个,上述问题还是会出现的!
(或者你告诉美工,你把上面的flash重做下,那么后果就是你被美工骂死,美工最后累死,~~~~~~开玩笑呵呵)
flash不像图片那样可以用js计算后等比例的进行放大或者缩小!
但是我们可以通过程序来搞定这一切!
首先是C#版的:
cnblogs上面的牛人已经帮我们介绍了.可以直接参考该文章
http://www.cnblogs.com/gmm/archive/2007/07/17/310675.html
或许你是用java开发,比如我,以前是c# 现在是java 百度了一通发现java下面也有比较牛X的开源项目来帮忙搞定这个麻烦事情
http://www.jswiff.com/download/index.jsp
FileInputStream stream = new FileInputStream(PublishUtil.getRootPath()+flashfile);
InputBitStream bitStream = new InputBitStream(stream);
SWFHeader swfheader = new SWFHeader(bitStream);
Rect rect =swfheader.getFrameSize();
float real_width = ((rect.getXMax() - rect.getXMin())/20L);
float real_height = ((rect.getYMax()- rect.getYMin())/20L);
if(real_width>=(float)width)
{
float percent= ((float)width/real_width);
height = (int)(real_height*percent);
}
LOG.info("real width:"+real_width +"real height:" + height);
String execString = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='" + width + "' height='" + height + "'><param name='movie' value='"+ flashfile +"'><param name='quality' value='high'><PARAM NAME='wmode' value='opaque'><embed src='" + flashfile + "' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' wmode='opaque' width='" + width + "' height='" + height + "'></embed></object>";
LOG.info("swf code:"+execString);
return execString;
如果有什么问题,请发邮件 suyuan19@qq.com
Code
<embed width="100%" height="100%" src="/upfiles/uploadpic/companypic/20082xube8s.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="opaque"
或者我们把flash 的宽度指定为我们页面的宽度 Width="770px" 可是页面的显示效果却是这样的:
两边黑的多出的东西就是由于flash自动适应后的出现的问题(如果你的flash宽度正好是770的话是不会出现此类问题的!)
那好了,我们给flash指定一个宽度再给它指定一个高度,不让它自适应,可是你怎么知道他的高度呢?随便指定一个,上述问题还是会出现的!
(或者你告诉美工,你把上面的flash重做下,那么后果就是你被美工骂死,美工最后累死,~~~~~~开玩笑呵呵)
flash不像图片那样可以用js计算后等比例的进行放大或者缩小!
但是我们可以通过程序来搞定这一切!
首先是C#版的:
cnblogs上面的牛人已经帮我们介绍了.可以直接参考该文章
http://www.cnblogs.com/gmm/archive/2007/07/17/310675.html
或许你是用java开发,比如我,以前是c# 现在是java 百度了一通发现java下面也有比较牛X的开源项目来帮忙搞定这个麻烦事情
http://www.jswiff.com/download/index.jsp
FileInputStream stream = new FileInputStream(PublishUtil.getRootPath()+flashfile);
InputBitStream bitStream = new InputBitStream(stream);
SWFHeader swfheader = new SWFHeader(bitStream);
Rect rect =swfheader.getFrameSize();
float real_width = ((rect.getXMax() - rect.getXMin())/20L);
float real_height = ((rect.getYMax()- rect.getYMin())/20L);
if(real_width>=(float)width)
{
float percent= ((float)width/real_width);
height = (int)(real_height*percent);
}
LOG.info("real width:"+real_width +"real height:" + height);
String execString = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='" + width + "' height='" + height + "'><param name='movie' value='"+ flashfile +"'><param name='quality' value='high'><PARAM NAME='wmode' value='opaque'><embed src='" + flashfile + "' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' wmode='opaque' width='" + width + "' height='" + height + "'></embed></object>";
LOG.info("swf code:"+execString);
return execString;
如果有什么问题,请发邮件 suyuan19@qq.com
相关文章推荐
- 网页怎么根据用户屏幕大小自动调整网页宽度?
- UILabel自动调整大小(高度,宽度)
- powerbuilder 中使用flash,flash无法根据窗口的大小自动调整
- 根据页面内容高度自动调整弹窗大小 推荐
- 一个可以使得上传的图片大小按照指定的宽度,高度自动按比例进行缩放的函数(C#)
- UILabel自动调整大小(高度,宽度)
- ios 文字 控件 自适应 高度 宽度 CustomCell 自适应高度+uilabel自动换行+ UITextView 根据内容自动调整高度
- android 字符串根据textview宽度 自动调整自身大小
- Android自定义控件之自定义EditText,令控件中的字根据控件高度自动调整大小-FenGKun
- 【Android】根据宽度自动调整(参照图片本身尺寸)高度
- 根据屏幕的高度宽度,调整大小
- Android自定义控件之自定义Text,令控件中的字根据控件高度自动调整大小-FenGKun
- IOS UILabel自适应里面的文字,自动调整宽度和高度的
- Android ListView根据项数的大小自动改变高度
- IOS开发基础之——图像压缩成指定大小(高度/宽度)
- 根据浏览器的大小,自动调整Silverlight的大小
- UILabel自适应里面的文字,自动调整宽度和高度
- easyui layout布局的根据浏览器页面大小自动调整大小
- iOS UILabel根据字符串长度自动适应宽度和高度
- android字体大小根据分辨率自动调整