PDA

Volledige versie bekijken : Efficientie AS3 - Buttons script


xanuex
%Europe/Berlin %690 %2009, 16:33
Vandaag ben ik voor het eerst begonnen met AS3 en ben wat aan het spelen geweest met knoppen. Opzich niet zo spectaculair maar het valt me op dat ik nogal veel code nodig heb om een relatief eenvoudige actie te laten plaatsvinden.

Is er iemand die eens naar het onderstaande stuk script wil kijken en me eventueel nog op en/of aanmerkingen kan geven vanuit dynamisch, functioneel en programmeertechnisch oogpunt?

Alvast bedankt!


// functions
function button_roll_out(e:MouseEvent):void {
e.target.gotoAndStop(1);
}
function button_roll_over(e:MouseEvent):void {
e.target.gotoAndStop(2);
}
function button_mouse_down(e:MouseEvent):void {
e.target.gotoAndStop(3);
}
function button_click(e:MouseEvent):void {
e.target.gotoAndStop(4);
}

// buttons
mc_button01.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button01.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button01.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button01.addEventListener(MouseEvent.CLICK, button_click);
mc_button01.buttonMode = true; // maakt van de cursor een handje
mc_button01.mouseChildren = false; // zorgt dat de acties geen betrekking hebben op onderliggende lagen

mc_button02.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button02.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button02.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button02.addEventListener(MouseEvent.CLICK, button_click);
mc_button02.buttonMode = true;
mc_button02.mouseChildren = false;

mc_button03.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button03.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button03.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button03.addEventListener(MouseEvent.CLICK, button_click);
mc_button03.buttonMode = true;
mc_button03.mouseChildren = false;

mc_button04.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button04.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button04.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button04.addEventListener(MouseEvent.CLICK, button_click);
mc_button04.buttonMode = true;
mc_button04.mouseChildren = false;

mc_button05.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button05.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button05.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button05.addEventListener(MouseEvent.CLICK, button_click);
mc_button05.buttonMode = true;
mc_button05.mouseChildren = false;

mc_button06.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button06.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button06.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button06.addEventListener(MouseEvent.CLICK, button_click);
mc_button06.buttonMode = true;
mc_button06.mouseChildren = false;

mc_button07.addEventListener(MouseEvent.ROLL_OVER, button_roll_over);
mc_button07.addEventListener(MouseEvent.ROLL_OUT, button_roll_out);
mc_button07.addEventListener(MouseEvent.MOUSE_DOWN , button_mouse_down);
mc_button07.addEventListener(MouseEvent.CLICK, button_click);
mc_button07.buttonMode = true;
mc_button07.mouseChildren = false;

// text
var ArrayButtons:Array = new Array("Knop1", "Knop2", "Knop3", "Knop4", "Knop5", "Knop6", "Knop7");
var i,j;

for(i=0; i<7; i++) {
if(i<10) {j = "0"+(i+1);} else {j=i;}

this["mc_button"+j].bt_txt.text = ArrayButtons[i];
}

Sjoedzj
%Europe/Berlin %696 %2009, 16:42
Wat je onderaan met die for-loop doet, kan je natuurlijk ook doen voor al die eventListeners etc

for(i=0; i<7; i++) {
this["mc_button0"+(i+1)].addEventListener(MouseEvent.ROLL_OVER, button_roll_over); //en zo ook voor die andere properties en eventListeners
if(i<10) {j = "0"+(i+1);} else {j=i;}

this["mc_button"+j].bt_txt.text = ArrayButtons[i];
}

succes;)

xanuex
%Europe/Berlin %703 %2009, 16:53
Dat is in ieder geval een enorm stuk korter :)

Thanks!