适用于 Android 的空气。我猜swf没有从内存中删除

Posted

技术标签:

【中文标题】适用于 Android 的空气。我猜swf没有从内存中删除【英文标题】:Air for Android. Swf not geting removed from memory i guess 【发布时间】:2018-10-02 15:42:30 【问题描述】:

我在使用带有 Air 的 adobe flash 开发的应用程序时遇到问题,以支持 android。我将apk部署到android设备上并播放了加载到我父swf上的.swf文件。有一个下一个和上一个按钮,可以连续加载 swf 文件。现在究竟发生了什么,当我加载我的下一个文件时,即使我已经从舞台上完全删除了 swf 文件,我之前的文件中的声音仍然在后台播放。 我不知道为什么会发生这种情况,因为只有当我在 android 设备上安装应用程序并播放它时才会发生这种情况。在 Falsh 中发布 swf 期间,我没有遇到这个问题。所以我无法弄清楚原因。有人可以指导我吗?谢谢

【问题讨论】:

还要确保在删除之前删除加载文件中或加载的文件中的所有事件侦听器,否则它将永远卡在内存中:) 【参考方案1】:

为了能够完全停止和卸载已加载的 SWF,您需要在 Loader 实例上调用 unloadAndStop() 方法,该实例保存已加载的内容。喜欢:

var outerSwf:Loader = new Loader;

// Load.
outerSwf.load(new URLRequest("outer.swf"));
addChild(outerSwf);

// ...
// Unload.
removeChild(outerSwf);
outerSwf.unloadAndStop();

【讨论】:

以上是关于适用于 Android 的空气。我猜swf没有从内存中删除的主要内容,如果未能解决你的问题,请参考以下文章

Android FindViewById 仅适用于子布局(列表视图行),不适用于父布局中的 TextView

适用于 Mac 的 Air Native Extension - “没有命名的方法”

iOS Multipeer 连接是不是适用于非智能手机设备?

有没有办法将swf文件加载到android中

Flurry 适用于没有 Google Play 服务的 Android 设备

在我的 android 程序中播放 swf 文件(flash)的最佳方式是啥?