·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3中创建按钮代码示例

时间:2012-11-14 01:04cnblogs.com
创建SimpleButton 类实例和创建upState,downState,overState和hitTestState等对象。当用户点击按钮时用click事件激活方法

创建SimpleButton 类实例和创建upState,downState,overState和hitTestState等对象。当用户点击按钮时用click事件激活方法

  1. package { 
  2. import flash.display.Sprite; 
  3. public class Sample1124 extends Sprite 
  4. public function Sample1124() 
  5. var button1:MyButton = new MyButton( "Button 1", 100, 20 ); 
  6. button1.x = 20
  7. button1.y = 20
  8. var button2:MyButton = new MyButton( "Button 2", 100, 30 ); 
  9. button2.x = 180
  10. button2.y = 20
  11. var button3:MyButton = new MyButton( "Button 3", 100, 40 ); 
  12. button3.x = 340
  13. button3.y = 20
  14. addChild( button1 ); 
  15. addChild( button2 ); 
  16. addChild( button3 ); 
  17. import flash.display.SimpleButton; 
  18. import flash.display.Sprite; 
  19. import flash.display.Shape; 
  20. import flash.filters.DropShadowFilter; 
  21. import flash.text.TextField; 
  22. import flash.text.TextFormat; 
  23. import flash.text.TextFormatAlign; 
  24. internal class MyButton extends SimpleButton 
  25. private var _text:String; 
  26. private var _width:Number; 
  27. private var _height:Number; 
  28. public function MyButton(text:String,width:Number,height:Number) 
  29. this._text = text; 
  30. this._width = width; 
  31. this._height = height; 
  32. this.upState = CreateUpState(); 
  33. this.downState = CreateDownState(); 
  34. this.overState = CreateOverState(); 
  35. this.hitTestState = upState
  36. private function CreateUpState():Sprite 
  37. var sprite:Sprite = new Sprite(); 
  38. var background:Shape = CreateColoredRectangle(0x33FF66); 
  39. var text:TextField = CreateTextField(false); 
  40. sprite.addChild(background); 
  41. sprite.addChild(text); 
  42. return sprite; 
  43. private function CreateDownState():Sprite 
  44. var sprite:Sprite = new Sprite(); 
  45. var background:Shape = CreateColoredRectangle(0xCCCCCC); 
  46. var text:TextField = CreateTextField(,true); 
  47. sprite.addChild(background); 
  48. sprite.addChild(text); 
  49. return sprite; 
  50. private function CreateOverState():Sprite 
  51. var sprite:Sprite = new Sprite(); 
  52. var background:Shape = CreateColoredRectangle(0x70FF94); 
  53. var text:TextField = CreateTextField(false); 
  54. sprite.addChild(background); 
  55. sprite.addChild(text); 
  56. return sprite; 
  57. private function CreateColoredRectangle(color:uint):Shape 
  58. var rect:Shape = new Shape(); 
  59. rect.graphics.lineStyle(1,0x000000); 
  60. rect.graphics.beginFill(color); 
  61. rect.graphics.drawRoundRect(0,0,_width,_height,10)//最后那个参数,值越大,越接近椭圆   
  62. rect.graphics.endFill(); 
  63. rect.filters = [new DropShadowFilter(2)]//滤镜   
  64. return rect; 
  65. private function CreateTextField(downState:Boolean):TextField 
  66. var textField:TextField = new TextField(); 
  67. textField.text = _text
  68. textField.width = _width
  69. var format:TextFormat = new TextFormat(); 
  70. format.align = TextFormatAlign.CENTER; 
  71. textField.setTextFormat(format); 
  72. //垂直居中   
  73. textField.y = (_height - textField.textHeight)/2; 
  74. textField.y -2;//Subtract 2 pixels to adjust for offset   
  75. if(downState) 
  76. textField.x += 1; 
  77. textField.y += 1; 
  78. return textField; 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器