Einzelnen Beitrag anzeigen
Alt 23-07-2007, 17:00   #3 (permalink)
maschka
Neuer User
 
Benutzerbild von maschka
 
Registriert seit: Jun 2003
Beiträge: 194
Das mit dem überschreiben hab ich mir auch gedacht und es gleich mal versucht:

Code:
/**
* Custom Button 
* erweitert den Simple Button
* und deaktiviert den Button tatsächlich, wenn er enabled==false ist (SimpleButton deaktiviert
* lediglich die Hoover-Effekte, sendet aber dennoch "Clicked-Events" etc)
* außerdem wird der Button halbtransparent gemacht, wenn er ausgeschaltet ist

*/

package engineAs3{
	import flash.display.SimpleButton;
	import flash.display.DisplayObject;
	
	public class  CustomButton extends SimpleButton{
		
		/** auf welchen Alpha soll der Button gesetzt werden, wenn er deaktiviert wird? */
		private var pDisabledAlpha:Number = 0.3;
		
		public function CustomButton(upState:DisplayObject = null, overState:DisplayObject = null, downState:DisplayObject = null, hitTestState:DisplayObject = null) {
			super(upState, overState, downState, hitTestState);
		}
		
		
		// Überschreiben der ursprünglichen Enabled Eigenschaft 
		/**
		* Setzt, wenn vorhanden einen anderen Display-State des Buttons (disabledState)
		* und deaktiviert die Erzeugung von Events (z.b: MouseEvent.CLICK)
		* @param	aEnabled
		* @return
		*/
		override public function set enabled(aEnabled:Boolean):void {
			if (aEnabled) {
				this.alpha = 1;
				this.hitTestState = this.upState;
			} else {
				this.alpha = pDisabledAlpha;
				this.hitTestState = null;
			}
			super.enabled = aEnabled;			
		}
		
		public function get disabledAlpha():Number { return pDisabledAlpha; }
		public function set disabledAlpha(aAlpha:Number):void { pDisabledAlpha = aAlpha; }
	}
	
}
funktioniert an sich schon wunderbar.
Mit dieser Variante kann ich aber der "enabled=false" kein grafisches Pendant geben, sondern es lediglich halbtransparent machen... Aber immerhin. =)

Aber wenn da noch jemand ne bessere Idee hat,.. dann immer her damit

gruß
maschka
maschka ist offline   Mit Zitat antworten