Loader释放内存

从7月初离职,回家休养,直到9月初才出来找工作,万幸工作很好找。已经入职新的公司,学习再次开始。

 

      之前做过一个有关Loader的测试,当时测试的结果是无论如何Loader加载进来的东西移出不了内存,直接导致内存逐步增长。有个项目曾经因为这个原因甚至采取了as3+as2的模式。近期开始熟悉CS4,看到有新的方法 unloadAndStop 。于是再度开始新的测试。

 

      结果发现之所以移出不干净完全是因为代码的问题:

之前一直认为直接将 loader addChild到别的地方这种行为会导致紧耦合,习惯建立一个DisplayObject来进行中转,一直没认为这部分会出现问题,在CS3中运行也是良好的。但是将其放到CS4中会发现报告出了一个错误:“ArgumentError: Error #2180: 如果 AVM1 内容(AS1 或 AS2)已加载到 AVM2 (AS3) 内容中,则不可将其移动到 displayList 的其他部分。”于是将代码改成:

这样就发现不仅在CS4中  在CS3中同样能达到释放内存的效果。

 

      归根结底,ADOBE其实认为正规的做法是将loader直接作为displayObject进行addChild即可,通过建立中转的方式会导致这部分长驻内存,除非关闭FLASHPLAYER否则释放不了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值