multiple buttons one rollover function
i have buttons being created , trying create rollover state them. same there. seems work on last button created , not sure why. see problem code?
code
function drawbuttons():void
{
(var j:number = 1; j<4; j++)
{
var textlabel:textfield = new textfield();
button = new sprite();
button.graphics.beginfill(0xcccccc);
// purple color;
button.graphics.drawroundrect(730, 0, 80, 25, 10, 10);
// x, y, width, height, ellipsew, ellipseh;
button.graphics.endfill();
//button[j].y = 275;
this.addchild(button);
button.buttonmode = true;
button.usehandcursor = true;
button.mousechildren = false;
textlabel.textcolor = 0x000000;
textlabel.x = 720;
textlabel.selectable = false;
textlabel.defaulttextformat = textformat;
if (j == 1)
{
trace(j);
button.y = 275;
textlabel.text = "a";
button.addchild(textlabel);
//add answer button listner
button.addeventlistener(mouseevent.mouse_down, answera_mousedown);
button.addeventlistener(mouseevent.roll_over, managemouseover);
//button.addeventlistener(mouseevent.roll_over, buttonrolloverhandler);
//button.addeventlistener(mouseevent.roll_out, buttonrollouthandler);
}
if (j == 2)
{
trace(j);
button.y = 310;
textlabel.text = "b";
button.addchild(textlabel);
//add answer button listner
button.addeventlistener(mouseevent.mouse_down, answerb_mousedown);
button.addeventlistener(mouseevent.roll_over, managemouseover);
}
if (j == 3)
{
trace(j);
button.y = 345;
textlabel.text = "c";
button.addchild(textlabel);
//add answer button listner
button.addeventlistener(mouseevent.mouse_down, answerc_mousedown);
button.addeventlistener(mouseevent.roll_over, managemouseover);
}
}
}
function managemouseover(event:mouseevent):void
{
//button.removeeventlistener(mouseevent.roll_over, managemouseover);
button.addeventlistener(mouseevent.roll_out, managemouseout);
trace("button roll over!");
this.button.graphics.beginfill(0xff0000);
this.button.graphics.drawroundrect(730, 0, 80, 25, 10, 10);
this.button.graphics.endfill();
}
function managemouseout(event:mouseevent):void
{
//button.removeeventlistener(mouseevent.roll_out, managemouseover);
//button.addeventlistener(mouseevent.roll_over, managemouseout);
trace("button roll out!");
this.button.graphics.beginfill(0xcccccc);
this.button.graphics.drawroundrect(730, 0, 80, 25, 10, 10);
this.button.graphics.endfill();
}
i don't se in code, if declaring "button" object outside of function ( var button:sprite; ), there 1 name, last 1 create.
you don't need try use name target buttons in event handlers. button clicked can targeted using: event.currenttarget
More discussions in ActionScript 3
adobe
Comments
Post a Comment