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

 

热门文章推荐

请稍候...

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

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