# Custom Button

**URL:** <https://forum.kirupa.com/t/custom-button/261212>\
**Category:** flash\
**Created:** [May 24, 2008, 11:28am UTC](https://forum.kirupa.com/t/custom-button/261212 "2008-05-24T11:28:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![TVM\_XST](https://avatars.discourse-cdn.com/v4/letter/t/4af34b/32.png) [@TVM\_XST](https://forum.kirupa.com/u/TVM_XST)\
**Post date:** [May 24, 2008, 11:28am UTC](https://forum.kirupa.com/t/custom-button/261212/1 "2008-05-24T11:28:02Z")

</div>

How to create coustom button using AS3 ? I want to create a Custom class which is derived from Button class.

---

<div class="post-metadata">

**Author:** ![Felixz](https://avatars.discourse-cdn.com/v4/letter/f/ecb155/32.png) [@Felixz](https://forum.kirupa.com/u/Felixz)\
**Post date:** [May 24, 2008, 12:59pm UTC](https://forum.kirupa.com/t/custom-button/261212/2 "2008-05-24T12:59:30Z")

</div>

u can create a button from MovieClip, just create right listeners

---

<div class="post-metadata">

**Author:** ![Alex\_Lexcuk](https://avatars.discourse-cdn.com/v4/letter/a/919ad9/32.png) [@Alex\_Lexcuk](https://forum.kirupa.com/u/Alex_Lexcuk)\
**Post date:** [May 24, 2008, 8:17pm UTC](https://forum.kirupa.com/t/custom-button/261212/3 "2008-05-24T20:17:25Z")

</div>

on worker field (4 frames clip has text dynamic instance name mur\_caption, has lincage class My\_button\_mc) is prescribed in file  
My\_button\_mc.as

```auto

//My_button_mc.as
package 
{ 
     import flash.display.MovieClip; 
     import flash.events.Event; 
     import flash.events.MouseEvent; 
     import flash.text.TextField;	 
     import flash.text.TextFormat;
     import flash.text.TextFieldAutoSize;	
	 
     dynamic public class My_button_mc extends MovieClip 
      {
           var button_func:Function;
           var up_mc,mid_mc:MovieClip;
           public function My_button_mc(my_caption:String,my_func:Function) //
           { 
           frame_4.gotoAndStop(1);
           up_mc = new MovieClip();
           mid_mc = new MovieClip();
           up_mc.graphics.beginFill(0xFF);		   
           up_mc.graphics.drawRect(0,0,frame_4.width,frame_4.height);
           up_mc.alpha=0;
           addChild(up_mc);
           up_mc.buttonMode=true;
           up_mc.addEventListener(MouseEvent.ROLL_OVER, on_roll); 	
           up_mc.addEventListener(MouseEvent.ROLL_OUT, on_roll_out); 	
           up_mc.addEventListener(MouseEvent.MOUSE_DOWN, on_down); 			
           up_mc.addEventListener(MouseEvent.MOUSE_UP, on_up); 							
		   

           mur_caption.text=my_caption;
   
           button_func=my_func;
           } 
		   
           private function on_roll(evt:MouseEvent):void 
           { 
           trace("on"); 			
           frame_4.gotoAndStop(2);
           }

           private function on_roll_out(evt:MouseEvent):void 
           { 
           trace("out"); 		
           frame_4.gotoAndStop(0);
	
           } 		   

           private function on_down(evt:MouseEvent):void 
           { 
           trace("down"); 	   
           frame_4.gotoAndStop(3);
           } 		

           private function on_up(evt:MouseEvent):void 
           { 
           trace("up"); 						   
           frame_4.gotoAndStop(1);
		   button_func();
           } 	
      }  
} 

```

in first frame exsample

```auto

var my_but= new My_button_mc("stop",my_func_stop);
addChild(my_but);
with (my_but) {x=10;y=10; scaleX=0.5; scaleY=0.5;}
function my_func_stop()
{
my_cube.anim_stop();
}

```

source  
[http://kind-armadillo.pochta.ru/FlaAC3/mur\_cube.swf](http://kind-armadillo.pochta.ru/FlaAC3/mur_cube.swf)  
[http://kind-armadillo.pochta.ru/FlaAC3/cube.rar](http://kind-armadillo.pochta.ru/FlaAC3/cube.rar)
