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

[AS3]一个自定义键盘源代码

时间:2014-01-03 11:09zpointer.iteye.com
[AS3]一个自定义键盘源代码,自定义键盘,as3键盘

[AS3]一个自定义键盘源代码

  1. /*******************************************************/ 
  2. /*Cuplayer.com自定义键盘*/ 
  3. /*******************************************************/ 
  4.  
  5. //Cuplayer.com50个按钮 
  6. var totalBtnNum:int = 50; 
  7. //每一行有12个按钮 
  8. var lineBtnNum:int = 12; 
  9. //按钮的宽和高 
  10. var btnWidth:Number = 30; 
  11. var btnHeight:Number = 30; 
  12. //按钮的行和列间距 
  13. var rw:Number = 5; 
  14. var lw:Number = 5; 
  15. //整体按钮的左上角点 
  16. var destPoint:Point = new Point(bgMc.x + 10, bgMc.y + 10); 
  17.  
  18. //Cuplayer.com创建滤镜 
  19. //Cuplayer.com投影 
  20. var dsf:DropShadowFilter = new DropShadowFilter(2, 90, 0x333333, 1, 2, 1, 1, 1, false, false, false); 
  21. //Cuplayer.com模糊 
  22. var bf:BlurFilter = new BlurFilter(1, 1, 1); 
  23. //Cuplayer.com发光 
  24. var gf:GlowFilter = new GlowFilter(0xFF0000, 1, 6, 6, 1, 1, false, false); 
  25.  
  26.  
  27. //Cuplayer.com所有字母按钮 
  28. var btns:Array = new Array(); 
  29. var letters:Array = ["ɑ","ā","á","à","ǎ","b","c","d","e","ē", 
  30.                      "é","ě","è","f","ɡ","h","i","ī","í","ǐ", 
  31.                      "ì","j","k","l","m","n","o","ō","ó","ǒ", 
  32.                      "ò","p","q","r","s","t","u","ū","ú","ǔ", 
  33.                      "ù","ü","ǖ","ǘ","ǚ","ǜ","w","x","y","z"]; 
  34. for (var i:int = 1; i <= totalBtnNum; i++) { 
  35.     var btn:Sprite = createBtn(btnWidth, btnHeight, letters[i - 1], 24); 
  36.     btn.name = letters[i - 1]; 
  37.     var t:int = i % lineBtnNum; 
  38.     btn.x = destPoint.x + (btn.width + rw) * int((t != 0?t : lineBtnNum) - 1); 
  39.     btn.y = destPoint.y + (btn.height + lw) * int((i - 1) / lineBtnNum); 
  40.     this.addChild(btn); 
  41.     btns.push(btn); 
  42. } 
  43.  
  44. //回车按钮 
  45. var enterBtn:Sprite = createBtn((btnWidth + rw) * 5 - rw, btnHeight, "回车(Enter)", 12); 
  46. enterBtn.name = "enter"; 
  47. enterBtn.x = destPoint.x + int(totalBtnNum % lineBtnNum + 3) * (btnWidth + rw); 
  48. enterBtn.y = destPoint.y + int(totalBtnNum / lineBtnNum) * (btnHeight + lw); 
  49. this.addChild(enterBtn); 
  50. btns.push(enterBtn); 
  51.  
  52. //删除按钮 
  53. var delBtn:Sprite = createBtn((btnWidth + rw) * 2 - rw, btnHeight, "删除(Del)", 12); 
  54. delBtn.name = "del"; 
  55. delBtn.x = enterBtn.x + enterBtn.width + 4; 
  56. delBtn.y = enterBtn.y; 
  57. this.addChild(delBtn); 
  58. btns.push(delBtn); 
  59.  
  60. //创建按钮监听 
  61. var tempBtn:Sprite = new Sprite(); 
  62. for(i = 0; i < btns.length; i++){ 
  63.     btns[i].addEventListener(MouseEvent.MOUSE_DOWN, downHandler); 
  64.     btns[i].addEventListener(MouseEvent.CLICK, clickHandler); 
  65. } 
  66. function downHandler(e:MouseEvent):void{ 
  67.     stage.addEventListener(MouseEvent.MOUSE_UP, upHandler); 
  68.     tempBtn = e.currentTarget as Sprite; 
  69.     tempBtn.filters = [bf, gf];// 
  70. } 
  71. function upHandler(e:MouseEvent):void{ 
  72.     stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler); 
  73.     tempBtn.filters = [dsf]; 
  74. } 
  75. import com.zkl.maths.test.MathsKeyboardEvent; 
  76. function clickHandler(e:MouseEvent):void{ 
  77.     var key:String = e.currentTarget.name; 
  78.     var eventString:String = MathsKeyboardEvent.NUMKEY; 
  79.     if (key == "del") { 
  80.         eventString = MathsKeyboardEvent.DELETE; 
  81.     }else if (key == "enter") { 
  82.         eventString = MathsKeyboardEvent.ENTER; 
  83.     } 
  84.     this.dispatchEvent(new MathsKeyboardEvent(eventString, key)); 
  85. } 
  86.  
  87. //创建按钮 
  88. function createBtn(w:Number, h:Number, txt:String = null, size:Number = 20):Sprite{ 
  89.     var btn:Sprite = new Sprite(); 
  90.     btn.graphics.beginFill(0xFFFFFF); 
  91.     btn.graphics.drawRoundRect(0, 0, w, h, 8, 8); 
  92.     btn.graphics.endFill(); 
  93.     btn.filters = [dsf]; 
  94.     if(txt != null){ 
  95.         var field:TextField = new TextField(); 
  96.         field.defaultTextFormat = format(size); 
  97.         field.autoSize = TextFieldAutoSize.CENTER; 
  98.         field.selectable = false; 
  99.         field.text = txt; 
  100.         //field.width = 20; 
  101.         //field.height = 20; 
  102.         field.x = (w - field.width) / 2; 
  103.         field.y = (h - field.height) / 2; 
  104.         btn.addChild(field); 
  105.     } 
  106.     btn.blendMode = BlendMode.LAYER; 
  107.     return btn; 
  108. } 
  109.  
  110. function format(size:Number):TextFormat{ 
  111.     var format:TextFormat = new TextFormat(); 
  112.     format.font = "宋体"; 
  113.     format.size = size; 
  114.     format.color = 0x666666; 
  115.     return format; 
  116. } 
  117. // 

 

热门文章推荐

请稍候...

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

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