是否可以在加载到网页中时捕获/查找Flash影片的尺寸?

时间:2011-09-09 20:08:16

标签: javascript flash actionscript-3

我有一个cms,我的客户从其客户端加载横幅广告。他们在上传横幅时不知道尺寸或不想输入尺寸。是否有可能捕获尺寸以设置对象属性,因为我们从数据库中抓取电影以显示在页面中? 我读到了movieinfo对象中的电影尺寸,但这是一个AS3对象吗?在Flash电影之外是否可以使用AS3对象?我可以通过javascript访问loaderobject吗? 我们试图加载的Flash电影不是我们的,我们无法访问闪光灯或类似的东西,因此我们无法编辑与电影本身有关的任何内容。

2 个答案:

答案 0 :(得分:0)

这可能会有所帮助

http://blog.codefidelity.com/?p=14

我认为你甚至可以更轻松地使用jquery

尝试类似$(“object”)。height()和$(“object”)。width();如果你只有一个flash的对象标签。

答案 1 :(得分:0)

如果您希望在没有用户输入的情况下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