Javascript 在flash电影加载到网页时,是否可以捕获/查找其尺寸?
我有一个cms,我的客户从他们的客户加载横幅广告。他们不知道尺寸,或者在上传横幅时不想输入尺寸。当我们从db抓取电影以显示在页面中时,是否可以捕获维度来设置对象属性? 我读到电影尺寸在loaderinfo对象中可用,但这是AS3对象,对吗?flash电影之外是否有AS3对象可用?我可以通过javascript访问loaderobject吗? 我们试图加载的Flash电影不是我们的,我们无法访问flas或类似的内容,因此我们无法编辑与电影本身有关的任何内容。这可能会有所帮助 我认为您甚至可以更轻松地使用jqueryJavascript 在flash电影加载到网页时,是否可以捕获/查找其尺寸?,javascript,flash,actionscript-3,Javascript,Flash,Actionscript 3,我有一个cms,我的客户从他们的客户加载横幅广告。他们不知道尺寸,或者在上传横幅时不想输入尺寸。当我们从db抓取电影以显示在页面中时,是否可以捕获维度来设置对象属性? 我读到电影尺寸在loaderinfo对象中可用,但这是AS3对象,对吗?flash电影之外是否有AS3对象可用?我可以通过javascript访问loaderobject吗? 我们试图加载的Flash电影不是我们的,我们无法访问flas或类似的内容,因此我们无法编辑与电影本身有关的任何内容。这可能会有所帮助 我认为您甚至可以更轻松
尝试类似$object.height和$object.width的内容;如果您只有一个flash对象标记。如果您希望在无需用户输入的情况下100%准确地存储大小,您还可以在服务器端执行一些操作 例如,此python脚本将输出压缩类型、版本、压缩或未压缩的大小以及维度
#!/usr/bin/env python
import bitstring
import zlib
swf_file = file("test.swf", "rb")
swf = swf_file.read()
swf_file.close()
bits = bitstring.ConstBitStream(filename="test.swf")
type = "".join(map(chr, bits.readlist('uint:8, uint:8, uint:8')))
print "Compression: ", type
print "Version: ", bits.read('uint:8')
swf_length = bits.read('uintle:32')
if type == 'CWS':
print "Compressed Size: ", swf_length
f = zlib.decompress(bits.bytes[8:], zlib.MAX_WBITS)
bits = bitstring.ConstBitStream(bytes=f, length=swf_length * 8 - 64)
else:
print "Uncompressed Size: ", swf_length
nbits = bits.read('uint:5')
xmin, xmax, ymin, ymax = bits.readlist('uint:{size}, uint:{size}, uint:{size}, uint:{size}'.format(size = nbits))
print "Dimensions: {x}x{y}".format(x = (xmax - xmin) / 20, y = (ymax - ymin) / 20)
示例输出:
Compression: CWS
Version: 10
Compressed Size: 166608
Dimensions: 200x100
这两个例子我都不起作用。这里可以看到codefidelity示例,-提供了巨大的宽度和高度。这里可以看到一个jQuery示例,宽度和高度也不正确。宽度和高度均应为187px。我是不是错过了一些很明显的东西?