如何获得上传swf文件的宽和高
发布网友
发布时间:2022-04-20 23:17
我来回答
共2个回答
热心网友
时间:2022-04-21 00:46
第一步要知道原SWF宽和高。如我知道原来这个SWF宽是1024,高768
第二步给这个SWF设置一个固定的宽和高(自己定)我不想这么大,我想放在宽450,高330怎么办呢?
第三步,打开FLASH软件,新建一个空白的影片剪辑,然后拖到场景中来,设置这个影片剪辑X轴为0,注意要选中这个影片剪辑,然后在“属性”影片剪辑“中给这个实例命名为mc
第四步,新建一个层,输入以下代码:
loadMovie("http://网站域名/.swf名", "mc");
mc._x=0;//加载影片的X轴坐标;
mc._y=0;//加载影片的Y轴坐标;
mc._xscale=44;//加载影片的宽度;
mc._yscale=43;//加载影片的高度;
下面我主要讲一下这个宽和高是怎么来的:
在这里宽高设置44怎么来的呢,我是这样计算出来的,原1024,现在自己定是450,那么就用450除1024=0.43.94,四舍五入,得出44
同理宽原来是768,我现在要设置为330,那么就用330除768=0.429,四舍五入,设置43
请有兴趣的朋友一试,本人经多个SWF测试非常成功。
热心网友
时间:2022-04-21 02:04
上传图片或显示SWF的时候都希望得到它的高度和宽度基本原理使用Adodb.Stream读二进制文件然后进行解析,然后返回一数组
第一个元素为类型(BMP JPG PNG GIF SWF)
第二个元素为宽度{width}
第三个元素为高度{height}
第四个元素为width={width},height={height}式字符串Class qswhImg
dim aso
Private Sub Class_Initialize
set aso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
End Sub
Private Sub Class_Terminate
set aso=nothing
End Sub Private Function Bin2Str(Bin)
Dim I, Str
For I=1 to LenB(Bin)
clow=MidB(Bin,I,1)
if ASCB(clow)<128 then
Str = Str & Chr(ASCB(clow))
else
I=I+1
if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
end if
Next
Bin2Str = Str
End Function
Private Function Num2Str(num,base,lens)
'qiushuiwuhen (2002-8-12)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wend
Num2Str = right(string(lens,"0") & num & ret,lens)
End Function
Private Function Str2Num(str,base)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i=1 to len(str)
ret = ret *base + cint(mid(str,i,1))
next
Str2Num=ret
End Function
Private Function BinVal(bin)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal=ret
End Function
Private Function BinVal2(bin)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal2=ret
End Function
Function getImageSize(filespec)
'qiushuiwuhen (2002-9-3)
dim ret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read(3)
select case hex(binVal(bFlag))
case "4E5089":
aso.read(15)
ret(0)="PNG"
ret(1)=BinVal2(aso.read(2))
aso.read(2)
ret(2)=BinVal2(aso.read(2))
case "464947":
aso.read(3)
ret(0)="GIF"
ret(1)=BinVal(aso.read(2))
ret(2)=BinVal(aso.read(2))
case "535746":
aso.read(5)
binData=aso.Read(1)
sConv=Num2Str(ascb(binData),2 ,8)
nBits=Str2Num(left(sConv,5),2)
sConv=mid(sConv,6)
while(len(sConv)<nBits*4)
binData=aso.Read(1)
sConv=sConv&Num2Str(ascb(binData),2 ,8)
wend
ret(0)="SWF"
ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)
ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)
case "FFD8FF":
do
do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS
if p1>191 and p1<196 then exit do else aso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS
loop while true
aso.Read(3)
ret(0)="JPG"
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
case else:
if left(Bin2Str(bFlag),2)="BM" then
aso.Read(15)
ret(0)="BMP"
ret(1)=binval(aso.Read(4))
ret(2)=binval(aso.Read(4))
else
ret(0)=""
end if
end select
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""
getimagesize=ret
End Function
End Class
使用范例(读某目录下所有图片的宽度):
set qswh=new qswhImg Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(server.mappath("."))
Set fc = f.Files
For Each f1 in fc
ext=fso.GetExtensionName(f1.path)
select case ext
case "gif","bmp","jpg","png":
arr=qswh.getImageSize(f1.path)
response.write "<br>" & arr(0) & " " & arr(3) & ":" & f1.name & " width:" & arr(1) & " height:" & arr(2)
case "swf"
arr=qswh.getimagesize(f1.path)
response.write "<br>" & arr(0) & " " & arr(3) & ":" & f1.name & " width:" & arr(1) & " height:" & arr(2)
end select
Next
Set fc=nothing
Set f=nothing
Set fso=nothing
Set qswh=nothing 补充:由于 flashmx 采用了新的压缩格式 swf,所以取 flashmx 压缩格式的 swf 文件长宽并不会准确,解决办法,正在研究中。
如何获得上传swf文件的宽和高
第一步要知道原SWF宽和高。如我知道原来这个SWF宽是1024,高768 第二步给这个SWF设置一个固定的宽和高(自己定)我不想这么大,我想放在宽450,高330怎么办呢?第三步,打开FLASH软件,新建一个空白的影片剪辑,然后拖到场景中来,设置这个影片剪辑X轴为0,注意要选中这个影片剪辑,然后在“属性”...
如何把doc文件转换成PDF格式?
"1.当然可以,首先要确定自己有一个pdf文档,而且确定目的是需要将pdf文档转换为word格式,然后我们将现有文档通过迅捷pdf转换器软件打开。2.通过选择PDF转换页面功能其中的PDF文件转WORD项目拖入文件。3.接着在迅捷pdf转换器下方按自己的需要是否更改文件名,然而在保存类型中选择*.doc选项。4.全部设置完成点击开始转换,确定自己设置好路径、更改文件名和保存类型即可。5.转换完成之后的word文档同样可以通过迅捷pdf转换器重新转换成一开始的pdf文档。"1.当然可以,首先要确定自己有一个pdf文档,而且确定目的是需要将pdf文档转换为word格式,然后我们将现有文档通过迅捷pdf转换器软件打开。2.通过选择PDF转换页面功能其中的PDF文件转WORD项目拖入文件。3.接着在迅捷pdf转换器下方按自己的需要是...
如何获得上传swf文件的宽和高
分析文件格式,文件头有swf的大小。我记不清是那个字节了,你可以查一下。能取得大小,这是必须的。
怎么把加载进来的SWF保持原宽度和高度显示?
回答:scaleMode=\"noScale\"如果需要继续追问,请看:提问时,只说现象不上文件,不上代码的这是回复帖子的通稿,请查看您的帖子属性哪一种类型.1??求助时,表达不清楚自己的问题. 2??求助时,只讲问题的现象,不讲制作思路,不提供与问题相关的情况描述。3??求助时,不详细提供相关情况和代码,问一点,说...
php 在多个上传图片时 怎么获取 要上传的图片宽高
分两个部分,一个是“多个图片”,一个是获取图片的宽、高。第一个用循环做到,也就是用for、foreach之类的东西遍历你从页面中得到的图片数组 下一步用getimagesize()函数获得图片的信息。此函数在php手册里有解释:图像生成与处理→GD→GD and image函数里。此函数返回的结果如下:返回一个具有四...
flex 导出swf设置宽高
在Flex程序的属性里可以设置,如果是想设置它在网页上面的显示大小,那么修改网页中的数值就行了。
如何让Flash自适应浏览器屏幕的大小?
1、swf文件随着浏览器屏幕大小也相应改变大下;\x0d\x0a方法:在网页里除了放你的swf文件外不要放其他的任何内容,并且swf文件的宽,高都设为100%;(可以看我的源文件里的fullscreen.htm文件);\x0d\x0a2、当swf文件大小改变时,flash内容也相应重新安排。\x0d\x0a在这个例子里,我在主舞台...
如何将一个.SWF插入网页中
3选择要插入的swf文件,然后点击确定按钮 4打开对象标签辅助功能属性,这里主要可以设置文件的标题访问键,一般用不到,可以直接跳过这个步骤,点击确定按钮。5插入以后,你可能会卡电脑swf的位置有些错位,这是因为你的swf的尺寸不太大把表格都撑开了 6打开属性栏,将宽和高设置小一点,这样swf文件就回归...
如何看FLASH动画的规格大小?
然后通过框选工具框住广告的位置,在信息窗口里就可以看到这个广告的尺寸。第三,如果你有这个flash文件(swf格式),想知道它的尺寸,一个办法是打开dreamweaver软件,插入flash 文件,drewmweaver会自动生成flash文件的高和宽。或者用asv等flash修改工具,也可以查看swf文件的各种属性,其中就包括尺寸。
FLASH如何设定外部加载的.swf的长与宽??
jd_mc.scaleX = ?jd_mc.scaleY = ?
如何让SWF文件全屏的效果?
方法是:在HTML文件中间加入以下代码: 第二种方法:也可以在SWF文件的第一帧Actions上的GETURL 命令上加上:javascript:window.open("nfd.swf","","fullscreen=1,menubar=no,width=800,height=600") 这种全屏也是类似屏保,用ALT+F4或设置按钮退出。把fullscreen设为=0,则只是不显示浏览器菜单栏、...