ios - Action script 3.0 问题,我的 swf 无法卸载

标签 ios actionscript-3 flash

在使用 Flash for iOS 应用程序时遇到一点麻烦!我有一个按钮“开始”加载外部瑞士法郎。然后我有一个不同的按钮,“home”,它应该做三件事:

  1. 卸载外部swf
  2. 停止所有声音
  3. 回到第一帧

看起来一切正常,但似乎 SWF 永远不会卸载!我一遍又一遍地听到它。

  //code on frame follows...mythbutt_home


 stop();

//home button

mythbutt_home.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_4);

function fl_ClickToGoToAndStopAtFrame_4(event:MouseEvent):void
{
removeChild(fl_ProLoader_3);

}
mythbutt_home.addEventListener(MouseEvent.CLICK, fl_ClickToStopAllSounds);

function fl_ClickToStopAllSounds(event:MouseEvent):void
{
SoundMixer.stopAll();
}

mythbutt_home.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_1);

function fl_ClickToGoToAndStopAtFrame_1(event:MouseEvent):void
{
gotoAndStop(1);
}


//start button

start_button_aboriginal.addEventListener(MouseEvent.CLICK, fl_ClickToLoadUnloadSWF_3);

import fl.display.ProLoader;
var fl_ProLoader_3:ProLoader;

//This variable keeps track of whether you want to load or unload the SWF
var fl_ToLoad_3:Boolean = true;

function fl_ClickToLoadUnloadSWF_3(event:MouseEvent):void
{
if(fl_ToLoad_3)
{
    fl_ProLoader_3 = new ProLoader();
    fl_ProLoader_3.load(new URLRequest("myths/myth_aboriginal.swf"));
    addChild(fl_ProLoader_3);
    fl_ProLoader_3.x = 114;
    fl_ProLoader_3.y = 41;
 }
 else
 {
    fl_ProLoader_3.unload();
    removeChild(fl_ProLoader_3);
    fl_ProLoader_3 = null;
}
// Toggle whether you want to load or unload the SWF
fl_ToLoad_3 = !fl_ToLoad_3;
}

最佳答案

首先,您不应该在多个框架上执行此操作。最好使用外部 .as 文件。 要正确卸载 swf,您需要删除对 swf 本身和 swf 中对象的所有引用。这包括你应该使用像这样的弱引用的 EventListeners:

// params: eventName, listener, capturePhase, priority, useWeakReference
someObj.addEventListener("eventName",myFunct,false,0,true);

并使用 unloadAndStop();并先删除!

removeChild(fl_ProLoader_3);
fl_ProLoader_3.unloadAndStop();
fl_ProLoader_3 = null;

并在 null 后跟踪加载程序,并查看输出内容!

关于ios - Action script 3.0 问题,我的 swf 无法卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677907/

相关文章:

javascript - 我如何在 Javascript 和 Flex 之间进行通信?

actionscript-3 - 类型错误 #2007 Flash Prof CS6

flash - 无法在Firefox上单击Flash中的允许按钮

ios - 格式化带有印度后缀的货币 IOS

ios - 以编程方式调整 safeArea 的 collectionView

actionscript-3 - Youtube as3 播放器 API 错误

flash - Flex声音提取并保存mp3

ios - 当具有动态单元格高度的 UITableview 放置在里面时,如何扩展/缩小 UICollectionViewCell 高度?

ios - iOS 13 和 iPhone 11 Pro 模拟器下的 tableView.rowHeight = UITableView.automaticDimension 导致无限更新 subview 循环

javascript - Actionscript 和 JavaScript 有什么区别