package ckaction.style { import flash.display.Sprite; import flash.text.TextField; import ckaction.act.script; import flash.text.TextFormat; import flash.display.SimpleButton; import flash.display.MovieClip; import flash.utils.ByteArray; import flash.display.Loader; import flash.events.Event; import flash.display.Bitmap; import flash.events.MouseEvent; import flash.display.JointStyle; import flash.display.CapsStyle; import ckaction.act.des; public class element { public static function newSprite(obj: Object = null): Sprite { //建立一个圆角矩形 var con: Object = { backgroundColor: null, //背景颜色 backgroundAlpha: 0, //背景透明度 border: 0, borderColor: null, //边框颜色 radius: 0, //圆角弧度 width: 0, height: 0 }; con = script.mergeObject(con, obj); //trace(con["width"], con["height"], con["radius"], con["radius"]); var sprite: Sprite = new Sprite(); if (con["backgroundColor"] != null) { sprite.graphics.beginFill(con["backgroundColor"], con["backgroundAlpha"]); //背景色,透明度CapsStyle.NONE } if (con["borderColor"] != null && con["border"] > 0) { sprite.graphics.lineStyle(con["border"], con["borderColor"], con["borderAlpha"], true, "normal", CapsStyle.NONE, JointStyle.MITER, 1.414); } sprite.graphics.drawRoundRect(0, 0, con["width"], con["height"], con["radius"], con["radius"]); return sprite; } public static function newLine(obj: Object = null): Sprite { //建立直线 var o: Object = { color: 0x000000, //背景颜色 alpha: 1, //透明度 width: 1, height: 1 }; o = script.mergeObject(o, obj); var s: Sprite = new Sprite(); s.graphics.lineStyle(o["height"], o["color"]); s.graphics.moveTo(0, 0); s.graphics.lineTo(o["width"], 0); s.alpha = o["alpha"]; return s; } public static function newTriangle(obj: Object = null): Sprite { //画三角 var o: Object = { width: 0, height: 0, backgroundColor: null, border: 0, borderColor: null, alpha: 0 } o = script.mergeObject(o, obj); var sprite: Sprite = new Sprite(); if (o["backgroundColor"] != null && o["alpha"]) { sprite.graphics.beginFill(o["backgroundColor"], o["alpha"]); } if (o["borderColor"] != null && o["border"] && o["alpha"]) { sprite.graphics.lineStyle(o["border"], o["borderColor"], o["alpha"]); } sprite.graphics.moveTo(0, 0); sprite.graphics.lineTo(o["width"], 0); sprite.graphics.lineTo(o["width"] * 0.5, o["height"]); sprite.graphics.lineTo(0, 0); sprite.graphics.endFill(); return sprite; } public static function newText(obj: Object = null): TextField { //建立一个简单的文本框 var o: Object = { text: "", color: 0xFFFFFF, size: 14, font: "Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑", width: 0, height: 0, leading: 0, alpha: 1, bold: false, rightMargin: 0, leftMargin: 0, textAlign: "left" } o = script.mergeObject(o, obj); var format: TextFormat = new TextFormat(); format.leading = o["leading"]; format.size = o["size"]; format.font = o["font"]; format.color = o["color"]; format.align = o["textAlign"]; if(o["bold"]==true){ format.bold=o["bold"]; } var text: TextField = new TextField(); text.defaultTextFormat = format; text.mouseEnabled = false; text.text = o["text"]; text.wordWrap = o["width"] > 0 ? true : false; text.width = o["width"] > 0 ? o["width"] : text.textWidth + 5; text.height = o["height"] > 0 ? o["height"] : text.textHeight + 5; text.alpha = o["alpha"]; return text; } public static function newButton(obj: Object = null): SimpleButton { //建立一个按钮 var o: Object = { backgroundAlpha:0.8, height: 30 , alpha: 1 , font: "Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑", padding: 0, align: "right", overTextColor: 0xFFFFFF, textColor: 0xEFEFEF, border: 0, bold: false, overBackgroundColor: 0x444444, size: 14, borderColor: 0x333333, width: 60, backgroundColor: 0x1A1A1A, radius: 0, text:"" } //script.traceObject(obj); o = script.mergeObject(o, obj); //建立背景 var bg: Object = { backgroundColor: o["backgroundColor"], //背景颜色 backgroundAlpha: o["backgroundAlpha"], //背景透明度 border: o["border"], borderColor: o["borderColor"], //边框颜色 radius: o["radius"], //圆角弧度 width: o["width"], height: o["height"] }; var bgSprite:Sprite=newSprite(bg); bg["backgroundColor"]=o["overBackgroundColor"]; //背景颜色 var overSprite:Sprite=newSprite(bg); //文字 var textObj:Object={ text: o["text"], color: o["textColor"], size: o["size"], font: o["font"], alpha: o["alpha"], bold: o["bold"] } var text:TextField=newText(textObj); textObj["color"]=o["overTextColor"]; var overText:TextField=newText(textObj); var tx:int=0; switch(o["align"]){ case "left": tx=o["padding"] break; case "center": tx=(bgSprite.width-text.width)*0.5; break; case "right": tx=bgSprite.width-text.width-o["padding"]; break; } text.x=tx; overText.x=tx; text.y=(bgSprite.height-text.height)*0.5; overText.y=(bgSprite.height-overText.height)*0.5; bgSprite.addChild(text); overSprite.addChild(overText); var button: SimpleButton = new SimpleButton(); if (o["over"]) { button.upState = overSprite; } else { button.upState = bgSprite; } button.overState = overSprite; button.hitTestState = overSprite; button.downState = overSprite; return button; } public static function imgButton(obj: Object = null, name: String = "", imgLoadedFun: Function = null): Sprite { //建立一个以图片为元件的按钮 var o: Object = { mouseOver: "", mouseOut: "" } o = script.mergeObject(o, obj); if (!o["mouseOver"] || !o["mouseOut"]) { return null; } var mObj: Object = { bgAlpha: 0, //背景透明度 width: 1, height: 1 }; var sp: Sprite = newSprite(mObj); var over: ByteArray = des.getByteArray(o["mouseOver"]); var out: ByteArray =des.getByteArray(o["mouseOut"]); var outBitMap: Bitmap = null, overBitMap: Bitmap = null; var loadOut: Loader = new Loader(), loadOver: Loader = new Loader(); function loadOutImg(): void { loadOut.loadBytes(out); //读取ByteArray loadOut.contentLoaderInfo.addEventListener(Event.COMPLETE, function (event: Event) { outBitMap = event.target.content as Bitmap; //读取Bitmap sp.addChild(outBitMap); loadOverImg(); }); } function loadOverImg(): void { loadOver.loadBytes(over); //读取ByteArray loadOver.contentLoaderInfo.addEventListener(Event.COMPLETE, function (event: Event) { overBitMap = event.target.content as Bitmap; //读取Bitmap sp.addChild(overBitMap); overBitMap.visible = false; addListener(); }); } function addListener(): void { sp.addEventListener(MouseEvent.MOUSE_OVER, function (event: MouseEvent) { overBitMap.visible = true; }); sp.addEventListener(MouseEvent.MOUSE_OUT, function (event: MouseEvent) { overBitMap.visible = false; }); if (imgLoadedFun != null) { imgLoadedFun(); } } loadOutImg(); sp.buttonMode = true; if (name != "") { sp.name = name; } return sp; } public static function imgSprite(img: String = ""): Sprite { var mObj: Object = { bgAlpha: 0, //背景透明度 width: 1, height: 1 }; var sp: Sprite = newSprite(mObj); var byte: ByteArray = des.getByteArray(img); var ld: Loader = new Loader(); ld.loadBytes(byte); //读取ByteArray ld.contentLoaderInfo.addEventListener(Event.COMPLETE, function (event: Event) { var BitMap: Bitmap = event.target.content as Bitmap; //读取Bitmap sp.addChild(BitMap); }); return sp; } } }