Actionscript 3 AS3:检测scrollRect中的精灵是否可见?

Actionscript 3 AS3:检测scrollRect中的精灵是否可见?,actionscript-3,Actionscript 3,我有没有办法“检测”某个特定精灵是否在scrollRect的可视区域内 我有一个scrollRect中的缩略图列表,我只想在scrollRect中显示缩略图精灵时加载这些缩略图的图像 关于如何完成这样的事情,有什么建议吗?你可以随时使用 if (Sprite.getBounds().intersects(scrollRect)) { //In view } 作为测试。基本矩形相交 我认为最简单的方法是检查两个矩形之间的重叠。您可以使用:myObject.getRect():矩形或get

我有没有办法“检测”某个特定精灵是否在scrollRect的可视区域内

我有一个scrollRect中的缩略图列表,我只想在scrollRect中显示缩略图精灵时加载这些缩略图的图像

关于如何完成这样的事情,有什么建议吗?

你可以随时使用

if (Sprite.getBounds().intersects(scrollRect)) {
    //In view
}

作为测试。基本矩形相交

我认为最简单的方法是检查两个矩形之间的重叠。您可以使用:myObject.getRect():矩形或getBounds():矩形从任何DisplayObject获取边界矩形。然后,您可以针对滚动矩形进行重叠测试

矩形上有一个本机重叠方法,(rect1.intersects(rect2)):布尔值。出于性能原因,我更喜欢使用自定义方法:

变量重叠:布尔=(r1.leftr2.left&&r1.topr2.top)


祝你好运

嗨,谢谢。因此,我在鼠标悬停事件中设置了scrollRect的y位置动画,不知道在哪里执行此检查。没问题。为了彻底起见,无论何时更新scrollRect,都应该检查每个子对象的可见性,并适当地更新缩略图。好的,那么如果我的鼠标悬停处理程序如下所示:var rect:Rectangle=mysprite.scrollRect.y+=10 mysprite.scrollRect=rect,我应该在这里执行相交检查吗?在mysprite的所有孩子身上?是的,就在那之后,假设你的缩略图(或它们的容器,无论你需要检查什么)是直接的孩子。请注意,如果您有多个地方更改了scrollRect,您可能希望将检查移动到一个单独的函数中,如scrollAndCheck(y),该函数将scrollRect滚动y像素,然后执行检查。谢谢。终于开始工作了。虽然我认为实际上只是加载所有图像,而不是执行mouseover处理程序中反复调用的所有循环和检查,对性能的影响较小。如果只是一次点击和一组检查就不会有问题,但是鼠标盖很快就被风扇吹进来了。