Jump to content
Search Community

Best Practice for recording item depths

MDiddy test
Moderator Tag

Recommended Posts

Hi I have a couple of controls that utilitze the moveSelectionDepthUp() & moveSelectionDepthDown() methods but I haven't been able to find a built-in function to get an accurate depth of the items on the board t a given moment. Sorry if this has been covered before but I searched the forums and documentation and couldn't really find a definitive answer. the getChildIndex() of the targetObjects seems to be off. Any suggestions?

Link to comment
Share on other sites

Yes but I thought it was related to this post that found where you mentioned that two sprites are added to the container:

viewtopic.php?f=3&t=167&p=3545&hilit=depth#p627

 

I know that was an old post so Is that no longer the case or am I misunderstanding? Not sure if it matters but I'm using FlexTransformManager so I don't know if it adds UIComponents instead of Sprites

Link to comment
Share on other sites

Yes, that post still applies. It does indeed add the __dummyBox_mc and __selection_mc as mentioned in that post. That won't make getChildIndex() report incorrectly, though.

 

If you're still running into trouble, could you post a sample Flex project or FLA that demonstrates the specific issue you're wrestling with? It's always helpful to see your code and what context TransformManager is being used in.

Link to comment
Share on other sites

I basically tried using the code form the forum post I linked to, but the sort order still seems to be off.

 

private function bringForward():void
		{
			flexTransformManager.moveSelectionDepthUp();
			sortBoard();
		}

		private function sendBackward():void
		{
			flexTransformManager.moveSelectionDepthDown();
			sortBoard();
		}

		private function sortBoard():void
		{
			var clips_array:Array = flexTransformManager.targetObjects;
			var newArray:Array = [];
			for (var i : int = 0; i < clips_array.length; i++) {
				clips_array[i].vo.itemDepth = i;
				trace(i, flexTransformManager.getChildIndex(clips_array[i]));
				newArray.push({depth: flexTransformManager.getChildIndex(clips_array[i]), item:clips_array[i]});
			}
			newArray.sortOn("depth", Array.NUMERIC);
			var arrangedArray:Array = [];
			for (var j:uint = 0; j < newArray.length; j++) {
				arrangedArray.push(newArray[j].item);
			}
			//Objects are still not in the correct order in arrangedArray;

		}

Link to comment
Share on other sites

It would be super helpful if you posted a very specific example (Flex project or FLA) that demonstrates the problem. Not sure what "seems to be off" means specifically, where or how you're calling the methods, what values you're expecting in what context, etc.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...