more efficient and correct bringToFront/sendToBack
This commit is contained in:
@@ -1,17 +1,12 @@
|
|||||||
(function :Void clearNulls <>[:FlxObject T] [:FlxTypedGroup<T> group]
|
|
||||||
(while (contains group.members null)
|
|
||||||
(group.members.splice (group.members.lastIndexOf null) 1)))
|
|
||||||
|
|
||||||
// Because FlxGroup will fill elements into null gaps in groups, this method inefficiently clears null gaps
|
|
||||||
(function :Void bringToFront <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
(function :Void bringToFront <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
||||||
(group.remove obj true)
|
(when (contains group.members obj)
|
||||||
(clearNulls group)
|
(group.members.remove obj)
|
||||||
(group.add obj))
|
(group.members.push obj)))
|
||||||
|
|
||||||
// Because FlxGroup will fill elements into null gaps in groups, this method throws an error when a null gap is present
|
|
||||||
(function :Void sendToBack <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
(function :Void sendToBack <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
||||||
(group.remove obj true)
|
(when (contains group.members obj)
|
||||||
(group.insert 0 obj))
|
(group.remove obj)
|
||||||
|
(group.insert 0 obj)))
|
||||||
|
|
||||||
(function :FlxRect calculateBounds <>[:FlxObject T] [:FlxTypedGroup<T> group &opt :Float margin]
|
(function :FlxRect calculateBounds <>[:FlxObject T] [:FlxTypedGroup<T> group &opt :Float margin]
|
||||||
(unless margin (set margin 0))
|
(unless margin (set margin 0))
|
||||||
|
Reference in New Issue
Block a user