守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 1993|回复: 2

[运行时错误] 2046

[复制链接]
  • TA的每日心情
    擦汗
    10 小时前
  • 签到天数: 433 天

    [LV.9]以坛为家II

    1739

    主题

    2091

    帖子

    12万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    457
    贡献
    24
    金币
    50924
    钢镚
    1419

    开源英雄守望者

    发表于 2015-1-8 15:44:06 | 显示全部楼层 |阅读模式
    AS3错误码
    错误代码: 2046
    错误消息: 已加载文件的签名无效。
    错误说明: 已加载文件的签名无效。
    消息类型: 运行时错误
    本帖最后由 破晓 于 2015-7-16 13:42 编辑

    相关链接:

    是谁把Adobe数字签名的RSL(*.swz)存放到FlashPlayer指定的缓存当中的? 是FlashPlayer

    解决方案请看回复
    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2016-4-19 18:18
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    8

    主题

    15

    帖子

    1634

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    威望
    8
    贡献
    1
    金币
    737
    钢镚
    29

    开源英雄

    发表于 2015-5-7 10:56:08 | 显示全部楼层

    回帖奖励 +2

    本帖最后由 破晓 于 2015-5-8 16:00 编辑

    试了个简单粗暴的方法,在服务器上不部署bin-release下的文件,部署bin-debug下的文件.这样可以解决问题,但不算是好方法
    目的就是把所有swz全干掉,换成swf,把签名去掉



    最好的解决方案还是把Flex  SDK  换成4.5以上版本。。。。。


    解决方案:



    修改连接类型




    找到SWZ,改成swf,把网络链接去掉:



    然后确定

    把所有的库SWZ  都改成SWF就好了

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    评分

    参与人数 1威望 +1 金币 +20 收起 理由
    破晓 + 1 + 20

    查看全部评分

    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    10 小时前
  • 签到天数: 433 天

    [LV.9]以坛为家II

    1739

    主题

    2091

    帖子

    12万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    457
    贡献
    24
    金币
    50924
    钢镚
    1419

    开源英雄守望者

     楼主| 发表于 2015-5-7 11:13:30 | 显示全部楼层
    RSL编译方式的FLEX站点出现#2046错误

    flex站点不能打开了~~~~(>_<)~~~~ ,报#2046错误,在其他机器访问页是ok的,在清缓存、重装flashplayer一些折腾之后,还是

    不行,最后在王同事的帮助下,找到了问题所在,原来是系统时间差远了去了,居然是2001年。当时为了loadrunner  支持500个

    java Vuser,换了一个非常过期license,需要修改系统时间才可使用,google来一段。粘上

    先简单解释下背景知识:从FLEX4开始,所有web程序都默认使用RSL的编译方式。那用RSL编译的FLEX站点和普通FLEX站点有什么区别呢?简单的说就是,flash player会在你第一次访问任何一个这种FLEX站点时,缓存下大约1M的类库在系统里。下次用户访问这个站点或者任何其他flex站点时都不用再下载类库这部分文件。RSL编译方式就是在编译时把类库都分离出去了。这种编译方式,在同类flash程序通常大小要接近1M的情况下,可以编出100K左右的整站程序,比一张图片都小。好处自然是非常节省带宽和加载时间。我现在做的几个FLEX站点都采用这种编译方式,加上皮肤也采用全矢量绘图,编译出来的整站程序都保持在100K左右,有效的解决了FLASH加载慢的最大问题。 但问题出来了,有一小部分用户第一次访问站点时,总是出现无法缓存类库的问题,表现就是报错"ERROR:#2046"。或者有些用户原来能够访问成功(说明已经成功缓存过类库了),但突然也开始报错了。直接导致的后果就是根本不能加载程序,想要节省加载时间反而导致不能加载,让我一直很苦恼。从做第一个FLEX4程序开始,我就发现了这个问题,当时只有我的电脑不能访问我写的站点,而大家都能,并且我重装了系统几次,都不行。后来不知道怎么的,我又突然就能访问了,就没有太在意这个问题。现在想想,那时候我干了一件他们都没干的事:我修改过系统时间。调整到2008年了。 因为用户系统的时间早于缓存的类库的有效签名时间,被flash player拒绝加载了。
    困扰我很久的问题终于解决了,非常之高兴,遂写了个js脚本加在网页里,加载前先判断下服务器和客户机的时间差。如果太大就弹出提示。让用户把时间改正确,或者就直接跳转到我准备好的无类库缓存版站点。我有给每个flex站点都加上这种无缓存的版本,供应急用。就是简单再写一个 full.html,把引用的程序改成对应的非RSL编译方式生成的swf即可。访问方法为:URL后加上full.html,使用上不会有任何差别。那么RSL的问题算是完美解决了,顺便也把另一个问题解决了吧:在FLEX站点访问时,还会出现另一个问题,就是很多客户机的FLASH PLAYER版本过低,导致FLEX程序不加载,表现为一片空白,不提示任何信息(只有没有安装FP时,浏览器才会自动提示)。这会让用户误以为站点不能访问了。解决办法也是加上个JS脚本,判断一下FP的版本先。下面附上两个JS脚本,在IE/Firefox/chrome测试均完美通过。




    来自百度经验

    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2017-10-19 22:16 , Processed in 1.296875 second(s), 35 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表