 	import weave.api.data.IKeySet;
 	import weave.api.detectLinkableObjectChange;
 	import weave.api.getCallbackCollection;
+	import weave.api.linkableObjectIsBusy;
 	import weave.api.newLinkableChild;
 	import weave.api.registerLinkableChild;
 	import weave.api.reportError;

		public const textGraphics:TextGraphics = new TextGraphics();
		public const canvas:Canvas = new Canvas();
		public var keys:Array;
		
		public function getSelectableAttributes():Array
		{

			if (!scriptChanged && !varsChanged && _prevSize.x == unscaledWidth && _prevSize.y == unscaledHeight)
				return;
			
			// wait until vars are not busy
			if (linkableObjectIsBusy(vars))
				return;
			
			// remember current size for next time
			_prevSize.x = unscaledWidth;
