2009-08-21 6 views
0

ich dort eine Möglichkeit zu "erkennen", wenn ein bestimmtes Sprite im sichtbaren Bereich eines ScrollRect ist?AS3: Erkennen, ob Sprite in scrollRect sichtbar ist?

Ich habe eine Liste von Thumbnails in einem scrollRect und möchte nur Bilder für diese Thumbnails laden, wenn und wenn das Thumbnail Sprite im scrollRect sichtbar ist.

Irgendwelche Tipps oder Vorschläge, wie man so etwas erreicht?

Antwort

2

Man konnte immer

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

als Test verwenden. Grundlegende Rechteckschnittmenge.

+0

Hallo, danke. Also habe ich die y-Position von scrollRect animiert auf einem mouseover-Ereignis, verwirrt, wo ich diesen Check machen würde. keine Hinweise – Ronn

+0

Kein Problem. Wenn Sie scrollRect aktualisieren, sollten Sie die Sichtbarkeit jedes untergeordneten Elements überprüfen und Ihre Miniaturansichten entsprechend aktualisieren. –

+0

ok, also wenn mein Mouseover-Handler wie folgt aussieht: var rect: Rectangle = mysprite.scrollRect rect.y + = 10 mysprite.scrollRect = rect sollte ich die intersect Check hier tun? auf alle Kinder von Mysprite? – Ronn

0

Ich denke, der einfachste Weg wäre, nach Überlappung zwischen den beiden Rechtecken zu überprüfen. Sie können ein Begrenzungsrechteck von einem beliebigen DisplayObject mit: myObject.getRect(): Rectangle oder getBounds(): Rectangle abrufen. Sie können dies mit dem Scroll-Rechteck auf Überlappung testen.

Es gibt eine native Überlappungsmethode für Rectangle (rect1.intersects (rect2)): Boolean. Ich ziehe es allerdings eine benutzerdefinierte Methode aus Leistungsgründen zu verwenden:

var Überlappung: Boolean = (r1.left < r2.right & & r1.right> r2.left & & r1.top < r2.bottom & & r1 .bottom> r2.top);

Viel Glück!

Verwandte Themen