代码之家  ›  专栏  ›  技术社区  ›  Yevgeny Simkin

Flash有时无法在URLLoader上触发任何事件

  •  3
  • Yevgeny Simkin  · 技术社区  · 15 年前

    我有一个URLLoader的实例,它在我的机器和许多其他机器上都能完美地工作,但是在少数情况下,不管浏览器或flash player版本如何,URLLoader都不会带着我的任何回调返回,因此load()方法被激发到平流层中,除此之外什么也不会发生。

    好奇是否有人遇到过这种情况,如果是的话,他们是如何绕过它的。

    好 啊。。。更不用说“没有回电”。事实上,它正在发射导弹SecurityError.SECURITY_ERROR. 然而,我完全不明白为什么它只会在某些机器上而不会在其他机器上启动。它是否与用户的管理权限或浏览器的安全设置有关?误差为2170,相位为0(无论这意味着什么)

    尤里卡!!!这就是问题(或者更确切地说是答案)。这个问题与计算机无关,而是在某些情况下,页面在没有www的情况下被加载。Flash不知道在那种情况下该怎么办。太棒了!

    2 回复  |  直到 15 年前
        1
  •  3
  •   Richard Szalay    15 年前

    一定要抓住 SecurityError.SECURITY_ERROR IOError.IO_ERROR COMPLETE 不会引发事件。

    如果 Loader 没有添加到UI树,它将不起作用。如果是这样的话,你应该使用 URLLoader 相反。

    如果要使用添加事件侦听器 addEventListener ,确保没有使用弱引用。如果你是,没有根,他们可能是垃圾收集,这将导致你的症状。

        2
  •  0
  •   Juan Pablo Califano    15 年前

    根据我的经验,上面的问题(可能是也可能不是这里的问题)在实践中并不常见,但绝对有可能(我自己也见过)。我不知道具体是在什么情况下发生的。我 不会收集活动加载程序。但我不确定玩家的主动加载程序是否与Actionscript视角下的主动加载程序相同。这意味着,作为代码,活动加载程序将是一个加载程序,您已经调用了加载方法,但尚未完成加载(有或没有错误)。现在,对于玩家来说(同样,这是一个-希望是有教育意义的-猜测),活跃可能意味着一些不同的东西。您只能同时从一个域下载2个资产(浏览器限制);如果您尝试加载更多内容,这些操作将由播放机排队。所以,一个加载程序,你已经调用了加载,但实际上还没有开始真正的加载,被玩家认为是不活跃的,所以它是可以收集的。