这不仅仅是我的好奇心,最近我收到了关于我的一个AS3应用程序的错误报告。只有当flash播放器的质量设置为LOW(HIGH / MEDIUM - 一切正常)时,才能重现此错误。这个bug会改变应用程序的行为,但这对我来说是一个谜,为什么它只发生在LOW质量上,而质量据说会影响渲染和视觉外观,而不是代码或行为。
简单地说,我有一个包含多个项目(也是MovieClip)的菜单面板(MovieClip)。很简单,它出现在MouseEvent之后的屏幕上,用户将光标从一个元素向下移动到另一个元素。当光标到达第二个项目的边缘时,菜单突然消失。 在我的代码面板中,隐藏是在鼠标单击或鼠标移除时设置的。
我个人认为,问题出现在Tweener中,我必须使用那段旧代码。当鼠标位于用户图标上方时,会显示菜单面板,同时在Tweener的帮助下,我会对此图标产生一些简单的效果。
我已经探索了adobe和firefox(我的应用程序是针对Web浏览器并且报告了firefox的错误)bugtrackers,但到目前为止我一无所获。也许闪存播放器11与阵列的不当行为已经修复了......我已经没想完了。
答案 0 :(得分:0)
来自文档:
LOW
Specifies low rendering quality: graphics are not anti-aliased, and bitmaps are not smoothed.
如果它只在将它设置为低时才会发生,那么它可能是一个时间问题 - 也就是说,bug一直存在,但是因为你早先将渲染包裹起来,你可以触发bug。臭虫记者的计算机速度慢吗?有没有发生过很多次?菜单是否被删除,设置为不可见或重新定位?
就像@jeremynealbrown说的那样,尝试将你的课程分成一个简单的项目,以确保你的逻辑没有任何问题。
另一种方法,覆盖removeChild()
方法,以及visible
和x
以及y
属性以查看哪个属性正在设置它,然后在所有调用的调用之前放置跟踪这些是为了看看是什么触发了它。
如果您认为问题出在Tweener中,请在菜单面板中添加MOUSE_OVER
侦听器,无论菜单面板的状态如何,都会调用类似removeAllTweens()
的内容。如果错误不再发生,这将显示它与补间引擎有关。