 	public var label:Object;
 	public var listener:Function;
 	public var params:Array;
+	public var shown:Function;
 }

			move(menuLocation.x, menuLocation.y);
		}
		
		private const tempBounds:Bounds2D = new Bounds2D();
	}
}

		 * @param label The Label string (or function that returns a string) to show when the menu is open.
		 * @param listener The function to call when the item is clicked.
		 * @param params An Array of parameters to pass to the listener function.
		 * @param shown A function that returns a boolean that determines whether the menu item should be shown.
		 * @return An object containing the three parameters (label, listener, params) which can be modified later.
		 */
		public function addSubMenuItem(label:Object, listener:Function, params:Array = null, shown:Function = null):Object
		{
			var menuItem:SubMenuItem = new SubMenuItem();
			menuItem.label = label;
			menuItem.listener = listener;
			menuItem.params = params;
			menuItem.shown = shown;
			subMenuDataProvider.push(menuItem);
			return menuItem;
		}
