板子要打在macromedia身上,因为在那Internet的蛮荒岁月,macromedia为了尽可能的减少swf文件的尺寸,在一部分对象中采用非字节对齐的文件格式。
简单的说,一部分对象不是以int/short这样存储的,而是以bit位这样存储的。
让我们看一个例子,例如Rect结构,在swf文件中的存储格式:
假设有一个700x350的Rectangle,在swf文件的存储如下(以2进制表示)
01111000,00000000,00000110,11010110,00000000,00000000,00001101,10101100,00000000,00000000,00011000,00000010,00000000,01000100,00010001,00011001
--------==============--------------------------==============--------------------------
储存每 xMin xMax yMin yMax
维长度
的bit数
Rect结构储存如下:
首5个字节代表了之后长宽高的bit数,这里是01111 ,换成10进制是15,代表后面每15个字节就是一维长度
xMin一看就知道,十进制是0
xMax的2进制表示是 011011010110 ,换成10进制是14000
yMin同样一看就知道十进制是0
yMax二进制表示是001101101011000,换成10进制是7000
所以这个Rectangle的四维分别是width = 14000, height=7000
??前面不是说长宽分别是700x350么?
天哪,adobe开源的swf文件格式在Using bit values里的例子有点瑕疵,所以这个问题也困扰了我半天。其实14000的单位是twips,20twips=1pixel
所以长宽仍然是14000/20 = 700, 7000/20 = 350
所以可以看出,当时macromedia在设计swf的时候,隐含就是假设一个int=32位,所以酱紫不知道怎样才可以扩展成64位。
恐怕Adobe在收购以后才发现,macromedia原来这么原始……
所以或许Adobe要重新编写虚拟机才能顺利的拓展成64位。但是从flex的sdk来看,我觉得Adobe在语言上并不擅长。
这也告诉我们,为了性能而做的bad design总会在将来的某一天成为你的梦魇。
好了,休息,休息一下。
分享到:
相关推荐
标题 "64位浏览器的Flash插件下载(flashplayer for 64-bit browser)" 指的是Adobe Flash Player的64位版本,这是一个用于在Web浏览器中播放Flash内容的插件。在过去的互联网时代,Flash是展示动画、游戏和多媒体内容...
win7 64位Flashplayer 11 Windows 7 64位系统专用。
它是个64位版本
标题中的"Arm64 Flashplayer Linux UOS 鲲鹏 飞腾"涉及的是在基于Arm64架构的Linux操作系统UOS(统一操作系统)上运行Flash Player的场景,特别提到了鲲鹏和飞腾这两种国产处理器平台。下面将详细阐述相关知识点: ...
总的来说,FlashPlayer11本地播放器精简版为那些依然需要使用Flash内容的用户提供了一种简便的解决方案,它的高效、便捷和独立运行的特点使其在特定场景下仍具有一定的实用性。但随着HTML5等新技术的普及,用户也应...
众所周知 adobe flash player 已被苏-州-思-杰-马-克-丁-代-理 在flash临死前打捞一笔 目前最新版本31 会弹出 ff资讯弹窗 Flash Helper Service服务后台常驻 收集用户隐私 如果禁止 flash将不可用 现在我收集了...
Flash Player Debug版是一款专为开发人员设计的特殊版本,它允许开发者在运行含有ActionScript代码的Flash内容时进行调试。ActionScript是Adobe Flash环境中用于创建交互式内容、动画和应用程序的主要编程语言。与...
标题 "flashplayer32_0r0_371_linuxpep.x86_64.tar.gz" 提供的关键信息是这是一个针对Linux系统的Adobe Flash Player的32位PPAPI版本,其版本号为32.0.0.371。在描述中提到,这个版本是Linux用户可以使用的最后一个...
64位的 flashplayer(适合win7 、vista 64位)
Flash Player离线安装包下载
标题中的“flashplayer-34.0.0.289独立版”指的是Adobe Flash Player的一个特定版本,这是Adobe公司开发的一款广泛应用于网络上的多媒体内容播放器。Flash Player的主要功能是解析和执行SWF文件,这种文件格式通常...
在安装完成后,可以在浏览器中打开相关网站来检测当前的 FlashPlayer 版本,如果安装正确的话,应该显示版本号为 LNX 10,2,151,49。 需要注意的是,这个版本只支持 32 位机器。 Adobe 公司的 FlashPlayer 是一个...
针对Linux 64位操作系统,Adobe公司发布了FlashPlayer 10.1.102.64版本,为用户提供了流畅的多媒体体验。本文将详细介绍这个版本的特性、安装过程以及在Linux环境中的应用。 首先,FlashPlayer 10.1.102.64版是针对...
此版本的重要性在于它标志着对Adobe Flash Player的支持即将结束,因为Google Chrome 87被确认为是最后一个内置并全面支持Flash Player的版本。这个里程碑式的更新对于用户和开发者来说具有深远的影响,因为它意味着...
此FLASHPLAYER11 为火狐浏览器版本(系统32位与64位一样的。好像谷歌,欧朋通用)IE不能用。之所以放这。因常在不同电脑上用火狐浏览器,每次都要下flashplay插件要不然看不了视频类的东西。官方网站每次只下载一个...
很多的朋友反映,将喜欢的Flash动画下载到自己的电脑后总是用IE浏览器或者第三方Flash播放器才能观看,感觉不好,希望用Macromedia的Flash Player播放,可是又很难找到!现在我就发一个最新版本的给大家!不过请注意...
Adobe Flash Player Square 是Adobe 公司发布的首个位Flash版本,它支持最新发布的IE9 Beta,提供了更强大的硬件加速能力,只要支持Flash 10.1的环境下均可以兼容运行,不过并不支持Windows Xp。 Adobe Flash Player...
FlashPlayer V10.1.85 是一个重要的软件版本,它属于Adobe Flash Player系列,是互联网上广泛使用的多媒体内容播放器。这款软件的核心功能是播放含有Flash技术的交互式内容,如动画、视频、游戏以及丰富的互联网应用...
最新flashplayer离线安装包下载