Hallo,
ich habe hier eine einfache Menü-Klasse für euch, die unter anderem sich auch den Aktiv-Status des Button merkt.
An dem Beispiel seht ihr, wie sich die Button-Befehle in AS3 gegenüber von AS 1 & 2 geändert haben.
PHP-Code:
/************************************************************/
/* © by Ralf Berg */
/* */
/* info@creativer.de */
/* */
/* http://www.creativer.de */
/* */
/* */
/* */
/************************************************************/
package {
//import der Filter
import flash.events.MouseEvent;
import flash.display.MovieClip;
// Contruktor
public class SimpelButton extends MovieClip {
var mc:MovieClip;
public static var aktiv:Boolean;
public static var aktivMc:MovieClip;
public function SimpelButton (clip:MovieClip) {
mc = clip;
//festlegung ob ein doppel Click ausgeführt werden darf, standart ist false;
mc.doubleClickEnabled = true;
//Schaltflächenmodus für MCs (Sprite)
mc.buttonMode = true;
init ();
}
//Buttonzuweisung
private function init ():void {
mc.addEventListener (MouseEvent.MOUSE_DOWN,onMousedown);
mc.addEventListener (MouseEvent.MOUSE_UP,onMouseup);
mc.addEventListener (MouseEvent.MOUSE_OVER,onRollover);
mc.addEventListener (MouseEvent.ROLL_OUT,onRollout);
mc.addEventListener (MouseEvent.MOUSE_OUT,onReleaseoutside);
mc.addEventListener (MouseEvent.CLICK,click_ereignis);
mc.addEventListener (MouseEvent.DOUBLE_CLICK,doppel_klick);
}
//Funktionen
private function onMousedown (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("press"): "";
trace ("down");
}
private function onMouseup (event:MouseEvent):MovieClip {
(aktivMc != this.mc && aktivMc)? aktivMc.gotoAndStop("inaktiv"): "";
aktivMc = this.mc;
this.mc.gotoAndStop ("aktiv");
return aktivMc;
trace ("Maus losgelassen");
}
private function onRollover (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("over"): "";
trace ("roll over");
}
private function onRollout (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("inaktiv"): "";
trace ("roll out");
}
private function onReleaseoutside (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("inaktiv"): "";
trace (" ausserhalb losgelassen");
}
private function click_ereignis (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("press"): "";
trace ("click");
}
private function doppel_klick (event:MouseEvent):void {
(aktivMc != this.mc)? this.mc.gotoAndStop("doppelclick"):"";
trace ("doppel Click");
}
}
}
Aufruf in der Fla:
PHP-Code:
//Import der Klasse
import SimpelButton;
//Zuweisen der Klasse einzelner Objecte auf der Bühne.
for (var i:Number = 0; i<4; i++) {
var btn_zuweisung:SimpelButton = new SimpelButton(this["button_"+i+"_btn"]);
}
Ich werde so wie es meine Zeit erlaubt, dieses Beispiel nach und nach erweitern.