【问题标题】:loaded SWF (using Loader) event listeners sometimes fails加载的 SWF(使用 Loader)事件侦听器有时会失败
【发布时间】:2011-09-11 10:13:02
【问题描述】:

我制作了一个 SWF,其中包含一个加载器,该加载器加载传递给它的任何 SWF 文件...我遇到的问题是,对于某些 SWF,某些事件侦听器不再触发...我自己的 SWF 文件(它包含加载器)除了加载器对象之外实际上没有任何其他元素,所以我无法理解是什么阻止加载的 SWF(由我的加载器加载)接收一些鼠标事件

获得了有关我的问题的更多详细信息...似乎对于我遇到此问题的 SWF,侦听器似乎被绑定到舞台或其他地方的某个位置,因此每当我调整大小时,听者没有在正确的位置做出响应,例如,按钮出现在某个位置,但听者的点击测试或 SWF 用来检测鼠标点击的任何东西都位于其他位置

【问题讨论】:

  • 你把加载器事件监听器放在哪里?这里:loader.loaderInfo.addEventListener(); 或这里:loader.addEventListener();?
  • 不是加载器有问题,而是加载的 SWF(加载器正在加载的 SWF)...可能是因为 SWF 设置了自己的侦听器错误方式,因为我得到鼠标点击事件,但在不同的位置......我能想到的只是为什么如果 SWF 没有加载到加载器中,它会正确调整其侦听器的大小和重新定位,但是如果加载了 SWF在加载器内部,它似乎无法重新定位其侦听器的位置...因为鼠标单击侦听器似乎依赖于坐标而不是对象
  • 您在加载的 swf 中使用stageroot 参数来获取childredn 或添加事件?

标签: flash actionscript-3


【解决方案1】:

我也遇到过这样的问题。不是听众改变了他们的位置,而是鼠标方向改变了。

您是否对比例进行了任何修改?这就是我遇到问题的原因。

您可以尝试通过将stage.scaleMode 更改为:

stage.scaleMode = StageScaleMode.NO_SCALE;

帮我解决了这个问题。

注意你也可以设置stage.align

【讨论】:

  • 我已经有了 stage.scaleMode = StageScaleMode.NO_SCALE;和 stage.align = StageAlign.TOP_LEFT;在我的代码中,我想这也是问题所在,因为我使用相同的 SWF 来加载 AS2 和 AS3 编码的 SWF
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 2018-09-04
相关资源
最近更新 更多