【问题标题】:AS3 Loader hangs / doesn't fire COMPLETEAS3 Loader 挂起/不触发 COMPLETE
【发布时间】:2013-01-22 15:40:05
【问题描述】:

我有一个字体类,它加载一个 png 文件和一个 xml 文件,它指定字形在位图上的位置。字体加载功能启动了 2 个加载器,一个用于 png,一个用于 xml。当它们都完成时,初始化函数运行。奇怪的是,当我从 Flash Builder 运行应用程序并且它在 IE 中运行良好时,一切正常,但是当我使用 chrome 并且没有通过 Flash Builder 运行时,并且内容之前已经加载过一次(清除浏览器缓存可以解决问题)然后下面一行挂起:

public function bitmapLoadComplete(evt:Event):void
{
    mObject = LoaderInfo(evt.target).content;  // <--- hangs here
    itemLoaded();
}

mObject 声明如下:

public var mObject:*;

itemLoaded 递减一个计数器(初始化为 2),如果它为零,则表示两个资产都已加载并运行 init 函数。

有什么想法吗?

资产位于此处:

https://s3.amazonaws.com/IceCreamSoftware/letters0.png https://s3.amazonaws.com/IceCreamSoftware/letters.bitmapfont

【问题讨论】:

  • Loader 也可以触发IO_Error 事件,确保它不会被触发。听它,万一出现问题,要么重新启动,解析和显示,要么用其他东西替换资产。
  • 呃,我的错,看起来我忘了传入一个似乎触发了安全沙箱违规的 LoaderContext(true)。禁用 Chrome 内置 Flash 播放器会弹出一个漂亮的对话框。

标签: actionscript-3 loader


【解决方案1】:

我未能将 checkPolicyFile 设置为 true 的 LoaderContext 传递给 Loader 对象的 load() 方法。这导致了 Chrome 嵌入式 Flash 播放器没有通知我的安全沙盒违规。禁用内置播放器并使用调试插件会弹出一个对话框,告诉我发生了什么。吸取了所有好的教训。奇怪的是:

1) Clearing the browser cache allowed the content to be loaded one time in Chrome
2) It always worked in IE

【讨论】:

    猜你喜欢
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    相关资源
    最近更新 更多