js实现斗地主纸牌扑克小游戏代码
代码语言:html
所属分类:游戏
代码描述:js实现斗地主纸牌扑克小游戏代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>开心斗地主 </title> <style> body { padding: 0; margin: 0; height: 100%; background-color: #eee; font-size: 12px; -webkit-touch-callout: none; -webkit-user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-text-size-adjust: none; } #main { margin: 0 auto; width: 1008px; } #textContainer { margin: 0 auto; font: 24px arial, verdana; font-weight: bold; color: #333; position: absolute; top: 200px; left: 450px; text-align: center; text-shadow: 0 2px 2px #ccc; } </style> <script type="text/javascript" > var casual = {}; casual.trace = function () { for (var c = [], a = 0; a < arguments.length; a++) c.push(arguments[a]); typeof console != "undefined" && typeof console.log == "function" && console.log(c.join(" ")) }; casual.inherit = function (c, a) { var b = function () { }; b.prototype = a.prototype; c.superClass = a.prototype; c.prototype = new b; c.prototype.constructor = c }; casual.delegate = function (c, a) { var b = a || window; if (arguments.length > 2) { var d = Array.prototype.slice.call(arguments, 2); return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return c.apply(b, e) } } else return function () { return c.apply(b, arguments) } }; casual.copy = function (c, a, b) { if (typeof c !== "object") return c; var d = c.valueOf(); if (c != d) return new c.constructor(d); if (c instanceof c.constructor && c.constructor !== Object) { d = a ? new a : casual.clone(c.constructor.prototype); for (var e in c) if (a || c.hasOwnProperty(e)) d[e] = c[e] } else { d = {}; for (e in c) d[e] = c[e] } if (b) for (e in b) d[e] = b[e]; return d }; casual.clone = function (c) { casual.__cloneFunc.prototype = c; return new casual.__cloneFunc }; casual.__cloneFunc = function () { }; (function () { var c = function (a, b, d, e, f, g) { this.a = a != undefined ? a : 1; this.b = b != undefined ? b : 0; this.c = d != undefined ? d : 0; this.d = e != undefined ? e : 1; this.tx = f != undefined ? f : 0; this.ty = g != undefined ? g : 0 }; casual.Matrix = c; c.prototype.concat = function (a) { var b = this.a, d = this.c, e = this.tx; this.a = b * a.a + this.b * a.c; this.b = b * a.b + this.b * a.d; this.c = d * a.a + this.d * a.c; this.d = d * a.b + this.d * a.d; this.tx = e * a.a + this.ty * a.c + a.tx; this.ty = e * a.b + this.ty * a.d + a.ty }; c.prototype.concatTransform = function (a, b, d, e, f, g, h) { var i = 1, j = 0; if (f % 360) { f = f * Math.PI / 180; i = Math.cos(f); j = Math.sin(f) } if (g != 0) this.tx -= g; if (h != 0) this.ty -= h; this.concat(new c(i * d, j * d, -j * e, i * e, a, b)) }; c.prototype.rotate = function (a) { var b = Math.cos(a); a = Math.sin(a); var d = this.a, e = this.c, f = this.tx; this.a = d * b - this.b * a; this.b = d * a + this.b * b; this.c = e * b - this.d * a; this.d = e * a + this.d * b; this.tx = f * b - this.ty * a; this.ty = f * a + this.ty * b }; c.prototype.scale = function (a, b) { this.a *= a; this.d *= b; this.tx *= a; this.ty *= b }; c.prototype.translate = function (a, b) { this.tx += a; this.ty += b }; c.prototype.identity = function () { this.a = this.d = 1; this.b = this.c = this.tx = this.ty = 0 }; c.prototype.invert = function () { var a = this.a, b = this.b, d = this.c, e = this.d, f = this.tx, g = a * e - b * d; this.a = e / g; this.b = -b / g; this.c = -d / g; this.d = a / g; this.tx = (d * this.ty - e * f) / g; this.ty = -(a * this.ty - b * f) / g }; c.prototype.clone = function () { return new c(this.a, this.b, this.c, this.d, this.tx, this.ty) }; c.prototype.toString = function () { return "(a=" + this.a + ", b=" + this.b + ", c=" + this.c + ", d=" + this.d + ", tx=" + this.tx + ", ty=" + this.ty + ")" } })(); (function () { var c = function (a, b, d, e) { this.x = a != undefined ? a : 0; this.y = b != undefined ? b : 0; this.width = d != undefined ? d : 0; this.height = e != undefined ? e : 0 }; casual.Rectangle = c; c.prototype.intersects = function (a) { return this.x <= a.x + a.width && a.x <= this.x + this.width && this.y <= a.y + a.height && a.y <= this.y + this.height }; c.prototype.intersection = function (a) { var b = Math.max(this.x, a.x), d = Math.min(this.x + this.width, a.x + a.width); if (b <= d) { var e = Math.max(this.y, a.y); a = Math.min(this.y + this.height, a.y + a.height); if (e <= a) return new c(b, e, d - b, a - e) } return null }; c.prototype.containsPoint = function (a, b) { return this.x <= a && a <= this.x + this.width && this.y <= b && b <= this.y + this.height }; c.prototype.clone = function () { return new c(this.x, this.y, this.width, this.height) }; c.prototype.toString = function () { return "(x=" + this.x + ", y=" + this.y + ", width=" + this.width + ", height=" + this.height + ")" } })(); (function () { var c = { _counter: 0 }; casual.NameUtil = c; c.getUID = function () { return c._counter++ }; c.createUniqueName = function (a) { var b = a.charCodeAt(a.length - 1); if (b >= 48 && b <= 57) a += "_"; return a + c.getUID() }; c.displayObjectToString = function (a) { var b; for (a = a; a != null; a = a.parent) { var d = a.id != null ? a.id : a.name; b = b == null ? d : d + "." + b; if (a == a.parent || a.parent instanceof Stage) break } return b } })(); (function () { var c = function (a, b, d) { this.type = a; this.params = this.currentTarget = this.target = null; this.bubbles = b != undefined ? b : false; this.cancelable = d != undefined ? d : false }; casual.EventBase = c; c.prototype.stopPropagation = function () { }; c.prototype.preventDefault = function () { }; c.prototype.clone = function () { return casual.copy(this) }; c.prototype.dispose = function () { delete this.type; delete this.target; delete this.currentTarget; delete this.params }; c.prototype.toString = function () { return "[EventBase type=" + this.type + "]" } })(); (function () { var c = function (a, b, d) { casual.EventBase.call(this, a, b, d); this.mouseY = this.mouseX = 0 }; casual.inherit(c, casual.EventBase); casual.StageEvent = c; c.ENTER_FRAME = "enterframe"; c.MOUSE_DOWN = "mousedown"; c.MOUSE_UP = "mouseup"; c.MOUSE_MOVE = "mousemove"; c.MOUSE_OVER = "mouseover"; c.MOUSE_OUT = "mouseout"; c.supportTouch = function () { return typeof Touch == "object" }; c.prototype.toString = function () { return "[StageEvent type=" + this.type + ", mouseX=" + this.mouseX + ", mouseY=" + this.mouseY + "]" } })(); (function () { var c = function () { }; casual.EventManager = c; c._maps = {}; c._sources = {}; c._listeners = {}; c._counter = 1; c.addEventListener = function (a, b, d) { var e = c._maps[b]; if (e == undefined) e = c._maps[b] = {}; var f = c._sources[a]; if (f == undefined) f = c._sources[a] = c._counter++; if (e[f] == undefined) e[f] = {}; e = e[f]; a = c._listeners[d]; if (a == undefined) a = c._listeners[d] = c._counter++; if (!(a in e)) { e = e[a] = {}; e.type = b; e.src = f; e.listener = d; return true } return false }; c.removeEventListener = function (a, b, d) { var e = c._maps[b]; if (e == undefined) return false; var f = c._sources[a]; if (f == undefined) return false; e = e[f]; if (e == undefined) return false; var g = true, h; for (h in e) if (c._listeners[d] == h) { delete c._listeners[d]; delete e[h] } else g = false; if (g) { delete c._maps[b][f]; delete c._sources[a] } return true }; c.removeEventListenerByType = function (a, b) { var d = c._maps[b]; if (d == undefined) return false; var e = c._sources[a]; if (e == undefined) return false; d != undefined && delete d[e]; e = true; for (var f in d) { e = false; break } e && delete c._maps[b]; return true }; c.removeAllEventListeners = function (a) { if (c._sources[a] == undefined) return false; for (var b in c._maps) { var d = c._maps[b]; d[scrid] != undefined && delete d[scrid] } delete c._sources[a] }; c.dispatchEvent = function (a, b) { var d = c._maps[b.type]; if (d == undefined) return false; var e = c._sources[a]; if (e == undefined) return false; d = d[e]; if (d == undefined) return false; if (!b.target) b.target = a; for (var f in d) { e = d[f].listener; typeof e == "function" && e.call(a, b) } return true }; c.hasEventListener = function (a, b) { var d = c._maps[b]; if (d == undefined) return false; var e = c._sources[a]; if (e == undefined) return false; return d[e] != undefined } })(); (function () { var c = function () { }; casual.EventDispatcher = c; c.prototype.addEventListener = function (a, b) { casual.EventManager.addEventListener(this, a, b) }; c.prototype.removeEventListener = function (a, b) { casual.EventManager.removeEventListener(this, a, b) }; c.prototype.removeEventListenerByType = function (a) { casual.EventManager.removeEventListenerByType(this, a) }; c.prototype.removeAllEventListeners = function () { casual.EventManager.removeAllEventListeners(this) }; c.prototype.dispatchEvent = function (a) { casual.EventManager.dispatchEvent(this, a) }; c.prototype.hasEventListener = function (a) { return casual.EventManager.hasEventListener(this, a) } })(); (function () { var c = function () { casual.EventDispatcher.call(this); this.name = NameUtil.createUniqueName("DisplayObject"); this.id = null; this.height = this.width = this.y = this.x = 0; this.scaleY = this.scaleX = this.alpha = 1; this.regY = this.regX = this.rotation = 0; this.mouseEnabled = this.visible = true; this.useHandCursor = false; this.stage = this.parent = null }; casual.inherit(c, casual.EventDispatcher); casual.DisplayObject = c; var a = document.createElement("canvas"); a.width = a.height = 1; c.__hitTestContext = a.getContext("2d"); c.__hitTestTolerance = 100; c.prototype.getCurrentWidth = function () { return Math.abs(this.width * this.scaleX) }; c.prototype.getCurrentHeight = function () { return Math.abs(this.height * this.scaleY) }; c.prototype.getStage = function () { if (this.stage) return this.stage; for (var b = this; b.parent;) b = b.parent; if (b instanceof casual.Stage) return this.stage = b; return null }; c.prototype.localToGlobal = function (b, d) { var e = this.getConcatenatedMatrix(); if (e == null) return { x: 0, y: 0 }; var f = new casual.Matrix(1, 0, 0, 1, b, d); f.concat(e); return { x: f.tx, y: f.ty } }; c.prototype.globalToLocal = function (b, d) { var e = this.getConcatenatedMatrix(); if (e == null) return { x: 0, y: 0 }; e.invert(); var f = new casual.Matrix(1, 0, 0, 1, b, d); f.concat(e); return { x: f.tx, y: f.ty } }; c.prototype.localToTarget = function (b, d, e) { b = this.localToGlobal(b, d); return e.globalToLocal(b.x, b.y) }; c.prototype.getConcatenatedMatrix = function () { for (var b = new casual.Matrix, d = this; d != null; d = d.parent) { b.concatTransform(d.x, d.y, d.scaleX, d.scaleY, d.rotation, d.regX, d.regY); if (d instanceof casual.Stage) break } return b }; c.prototype._transform = function (b, d) { if (d) { var e = this.localToGlobal(0, 0); if (e.x != 0 || e.y != 0) b.translate(e.x, e.y) } else b.translate(this.x, this.y); this.rotation % 360 > 0 && b.rotate(this.rotation % 360 / 180 * Math.PI); if (this.scaleX != 1 || this.scaleY != 1) b.scale(this.scaleX, this.scaleY); d || b.translate(-this.regX, -this.regY); b.globalAlpha *= this.alpha }; c.prototype._render = function (b, d, e) { if (!(!this.visible || this.alpha <= 0)) { b.save(); d || this._transform(b, e); this.render(b); b.restore() } }; c.prototype.render = function () { }; c.prototype.hitTestPoint = function (b, d, e, f) { if (!e) { f = this.globalToLocal(b, d); return f.x >= 0 && f.x <= this.getCurrentWidth() && f.y >= 0 && f.y <= this.getCurrentHeight() } e = c.__hitTestContext; e.setTransform(1, 0, 0, 1, -b, -d); this._render(e, false, true); f = f || c.__hitTestTolerance; b = false; try { if (e.getImageData(0, 0, 1, 1).data[3] >= f) b = true } catch (g) { trace("hitTestPoint:", this, g) } e.canvas.width = 0; e.canvas.width = 1; return b }; c.prototype.hitTestObject = function (b, d, e) { var f = this.getRect(this.getStage()), g = b.getRect(this.getStage()); if (!d) return f.intersects(g); f = f.intersection(g); e = e || c.__hitTestTolerance; if (f && f.width > 0 && f.height > 0) { d = false; try { var h = c.__hitTestContext; h.canvas.width = f.width; h.canvas.height = f.height; h.setTransform(1, 0, 0, 1, -f.x, -f.y); this._render(h, false, true); var i = h.getImageData(0, 0, f.width, f.height).data; h.canvas.width = 0; h.canvas.width = f.width; h.setTransform(1, 0, 0, 1, -f.x, -f.y); b._render(h, false, true); var j = h.getImageData(0, 0, f.width, f.height).data; for (b = 0; b < i.length;) { if ((i[b] > 0 || i[b + 1] > 0 || i[b + 2] > 0 || i[b + 3] >= e) && (j[b] > 0 || j[b + 1] > 0 || j[b + 2] > 0 || j[b + 3] >= e)) { d = true; break } b += 4 } } catch (k) { } h.canvas.width = 0; h.canvas.width = h.canvas.height = 1; return d } return false }; c.prototype.getRect = function (b) { b = this.localToTarget(0, 0, b); return new Rectangle(b.x, b.y, this.getCurrentWidth(), this.getCurrentHeight()) }; c.prototype.onMouseEvent = null; c.prototype.toString = function () { return NameUtil.displayObjectToString(this) } })(); (function () { var c = function () { casual.DisplayObject.call(this); this.children = []; this.mouseChildren = true }; casual.inherit(c, casual.DisplayObject); casual.DisplayObjectContainer = c; c.prototype.addChild = function (a) { if (this.getChildIndex(a) != -1) { a.parent = this; return a } a.parent && a.parent.removeChild(a); this.children[this.children.length] = a; a.parent = this; return a }; c.prototype.addChildAt = function (a, b) { if (this.getChildIndex(a) != -1) { a.parent = this; return a } a.parent && a.parent.removeChild(a); this.children.splice(b, 0, a); a.parent = this; return a }; c.prototype.removeChild = function (a) { return this.removeChildAt(this.children.indexOf(a)) }; c.prototype.removeChildAt = function (a) { if (a < 0 || a > this.children.length - 1) return false; var b = this.children[a]; if (b != null) b.parent = null; this.children.splice(a, 1); return true }; c.prototype.removeChildByName = function (a) { for (var b = 0, d = this.children.length; b < d; b++) if (this.children[b].name == a) return this.removeChildAt(b); return null }; c.prototype.removeAllChildren = function () { for (; this.children.length > 0;) this.removeChildAt(0) }; c.prototype.getChildByName = function (a) { for (var b = 0, d = this.children.length; b < d; b++) if (this.children[b].name == a) return this.children[b]; return null }; c.prototype.getChildAt = function (a) { if (a < 0 || a > this.children.length - 1) return null; return this.children[a] }; c.prototype.getChildIndex = function (a) { return this.children.indexOf(a) }; c.prototype.setChildIndex = function (a, b) { if (a.parent == this) { var d = this.children.indexOf(a); if (b != d) { this.children.splice(d, 1); this.children.splice(b, 0, a) } } }; c.prototype.contains = function (a) { return this.getChildIndex(a) != -1 }; c.prototype.getNumChildren = function () { return this.children.length }; c.prototype.getObjectUnderPoint = function (a, b, d, e, f) { if (f) var g = []; for (var h = this.children.length - 1; h >= 0; h--) { var i = this.children[h]; if (!(i == null || !i.mouseEnabled || !i.visible || i.alpha <= 0)) if (i instanceof c && i.mouseChildren && i.getNumChildren() > 0) { var j = i.getObjectUnderPoint(a, b, d, e, f); if (j) if (f) { if (j.length > 0) g = g.concat(j) } else return j; else if (i.hitTestPoint(a, b, d, e)) if (f) g.push(i); else return i } else if (i.hitTestPoint(a, b, d, e)) if (f) g.push(i); else return i } if (f) return g; return null }; c.prototype.render = function (a) { for (var b = 0, d = this.children.length; b < d; b++) this.children[b]._render(a) } })(); (function () { var c = function (a) { if (a == null) throw Error("Context can't be null!"); casual.DisplayObjectContainer.call(this); this.name = NameUtil.createUniqueName("Stage"); this.context = a; this.canvas = a.canvas; this.mouseY = this.mouseX = 0; this.traceMouseTarget = true; this.dragTarget = this.mouseTarget = null; this._frameRate = this._dragMouseY = this._dragMouseX = 0; this._pauseInNextFrame = this._paused = false; this.__intervalID = null; this.setFrameRate(20); if (casual.StageEvent.supportTouch()) { this.canvas.addEventListener("touchstart", casual.delegate(this.__touchHandler, this), false); this.canvas.addEventListener("touchmove", casual.delegate(this.__touchHandler, this), false); this.canvas.addEventListener("touchend", casual.delegate(this.__touchHandler, this), false); this.canvas.addEventListener("touchcancel", casual.delegate(this.__touchHandler, this), false) } else { this.canvas.addEventListener("mousedown", casual.delegate(this.__mouseHandler, this), false); this.canvas.addEventListener("mouseup", casual.delegate(this.__mouseHandler, this), false); this.canvas.addEventListener("mousemove", casual.delegate(this.__mouseHandler, this), false) } }; casual.inherit(c, casual.DisplayObjectContainer); casual.Stage = c; c.prototype.setPaused = function (a, b) { if (this._paused != a) { this._paused = a; this._pauseInNextFrame = b || false } }; c.prototype.getPaused = function () { return this._paused }; c.prototype.getFrameRate = function () { return this._frameRate }; c.prototype.setFrameRate = function (a) { if (this._frameRate != a) { this._frameRate = a; this.__intervalID != null && clearInterval(this.__intervalID); this.__intervalID = setInterval(casual.delegate(this.__enterFrame, this), 1E3 / this._frameRate) } }; c.prototype.__touchHandler = function (a) { this.mouseX = a.changedTouches[0].pageX - this.canvas.offsetLeft; this.mouseY = a.changedTouches[0].pageY - this.canvas.offsetTop; this.traceMouseTarget && this.__getMouseTarget(a); switch (a.type) { case "touchstart": var b = casual.copy(a, casual.StageEvent, { type: "mouseover", button: 0 }); b.target = b.currentTarget = this.mouseTarget || this; b.mouseX = this.mouseX; b.mouseY = this.mouseY; this.mouseTarget && this.mouseTarget.onMouseEvent && this.mouseTarget.onMouseEvent(b); this.dispatchEvent(b); b = casual.copy(b, casual.StageEvent, { type: "mousedown" }); this.mouseTarget && this.mouseTarget.onMouseEvent && this.mouseTarget.onMouseEvent(b); this.dispatchEvent(b); a.preventDefault(); break; case "touchmove": b = casual.copy(a, casual.StageEvent, { type: "mousemove", button: 0 }); b.target = b.currentTarget = this.mouseTarget || this; b.mouseX = this.mouseX; b.mouseY = this.mouseY; this.mouseTarget && this.mouseTarget.onMouseEvent && this.mouseTarget.onMouseEvent(b); this.dispatchEvent(b); a.preventDefault(); break; case "touchend": b = casual.copy(a, casual.StageEvent, { type: "mouseup", button: 0 }); b.target = b.currentTarget = this.mouseTarget || this; b.mouseX = this.mouseX; b.mouseY = this.mouseY; if (this.mouseTarget && this.mouseTarget.onMouseEvent) { this.mouseTarget.onMouseEvent(b); this.mouseTarget.onMouseEvent(casual.copy(a, casual.StageEvent, { type: "mouseout" })) } this.dispatchEvent(b); a.preventDefault() } }; c.prototype.__mouseHandler = function (a) { this.mouseX = a.pageX - this.canvas.offsetLeft; this.mouseY = a.pageY - this.canvas.offsetTop; this.traceMouseTarget && a.type == "mousemove" && this.__getMouseTarget(a); var b = casual.copy(a, casual.StageEvent); b.target = b.currentTarget = this.mouseTarget || this; b.mouseX = this.mouseX; b.mouseY = this.mouseY; this.mouseTarget && this.mouseTarget.onMouseEvent && this.mouseTarget.onMouseEvent(b); this.setCursor(this.mouseTarget && this.mouseTarget.useHandCursor ? "pointer" : ""); this.dispatchEvent(b); a.preventDefault(); a.stopPropagation() }; c.prototype.__getMouseTarget = function (a) { var b = this.getObjectUnderPoint(this.mouseX, this.mouseY, true), d = this.mouseTarget; this.mouseTarget = b; if (d && d.onMouseEvent && d != b) { a = casual.copy(a, casual.StageEvent); a.type = "mouseout"; a.target = a.currentTarget = d; a.mouseX = this.mouseX; a.mouseY = this.mouseY; d.onMouseEvent(a) } }; c.prototype.__enterFrame = function () { if (!(this._paused && !this._pauseInNextFrame)) { this.dispatchEvent(new StageEvent(StageEvent.ENTER_FRAME)); if (!this._paused || this._pauseInNextFrame) this._render(this.context, true); if (this._frameRate <= 0) { clearInterval(this.__intervalID); this.__intervalID = null } } }; c.prototype.render = function (a) { if (!a) a = this.context; this.clear(); if (this.dragTarget) { this.dragTarget.x = this.mouseX - this._dragMouseX; this.dragTarget.y = this.mouseY - this._dragMouseY } c.superClass.render.call(this, a); if (this._pauseInNextFrame) { this._paused = true; this._pauseInNextFrame = false } }; c.prototype.startDrag = function (a) { this.dragTarget = a; a = this.dragTarget.globalToLocal(this.mouseX, this.mouseY); this._dragMouseX = a.x; this._dragMouseY = a.y }; c.prototype.stopDrag = function () { this.dragTarget = null }; c.prototype.setCursor = function (a) { this.canvas.style.cursor = a }; c.prototype.clear = function (a, b, d, e) { arguments.length >= 4 ? this.context.clearRect(a, b, d, e) : this.context.clearRect(0, 0, this.canvas.width, this.canvas.height) }; c.prototype.getStageWidth = function () { return this.canvas.width }; c.prototype.getStageHeight = function () { return this.canvas.height } })(); (function () { var c = function (a, b) { casual.DisplayObject.call(this); this.name = NameUtil.createUniqueName("Bitmap"); this.mouseEnabled = false; this.image = a; this.frame = b ? b : [0, 0, a.width, a.height]; this.width = this.frame[2]; this.height = this.frame[3]; this.regX = this.frame[4] || 0; this.regY = this.frame[5] || 0 }; casual.inherit(c, casual.DisplayObject); casual.Bitmap = c; c.prototype.render = function (a) { a.drawImage(this.image, this.frame[0], this.frame[1], this.frame[2], this.frame[3], 0, 0, this.width, this.height) } })(); (function () { var c = function () { casual.DisplayObjectContainer.call(this); this.name = NameUtil.createUniqueName("Sprite") }; casual.inherit(c, casual.DisplayObjectContainer); casual.Sprite = c })(); (function () { var c = function (a, b, d, e, f) { this.disObj = a; this.label = b || null; this.gotoFrame = d || 0; this.pauseFrames = e || 0; this.stop = f || false }; casual.Frame = c; c.prototype.render = function (a, b, d) { if (b) this.disObj.x = b; if (d) this.disObj.y = d; this.disObj._render(a, false, false) } })(); (function () { var c = function (a) { casual.Sprite.call(this); this.name = NameUtil.createUniqueName("MovieClip"); this._frameLables = {}; this._frames = []; a && this.addFrame(a); this.currentFrame = 1; this._frameDisObj = null; this._pauseFrames = 0; this._paused = false }; casual.inherit(c, casual.Sprite); casual.MovieClip = c; c.prototype.addFrame = function (a) { if (a[0] instanceof casual.Frame || a[0] instanceof Array) for (var b in a) this.addFrame(a[b]); else this.setFrame(this._frames.length + 1, a) }; c.prototype.addFrameAt = function (a, b) { this._frames.splice(b, 0, null); this.setFrame(b + 1, a) }; c.prototype.setFrame = function (a, b) { var d; d = b instanceof casual.Frame ? b : new casual.Frame(b); this._frames[a - 1] = d; if (d.label) this._frameLables[d.label] = d; if (a == 1) { this._frameDisObj = d.disObj; this.width = Math.max(this.width, this._frameDisObj.width); this.height = Math.max(this.height, this._frameDisObj.height) } }; c.prototype.getFrameNumber = function (a) { if (typeof a == "number") return a; var b = a; if (typeof b == "string") b = this._frameLables[a]; for (a = 0; a < this._frames.length; a++) if (b == this._frames[a]) return a + 1; return -1 }; c.prototype.getFrame = function (a) { if (typeof a == "number") return this._frames[a - 1]; return this._frameLables[a] }; c.prototype.removeFrame = function (a) { var b = this.getFrame(a); a = a; if (b.label) { a = this.getFrameNumber(b); delete this._frameLables[b.label] } this._frames.splice(a - 1, 1) }; c.prototype.getTotalFrames = function () { return this._frames.length }; c.prototype.nextFrame = function () { var a = this.getFrame(this.currentFrame); if (a.pauseFrames) if (a.pauseFrames > this._pauseFrames) this._pauseFrames++; else this._pauseFrames = 0; if (a.gotoFrame) if (this._pauseFrames == 0 || !a.pauseFrames) return this.currentFrame = this.getFrameNumber(a.gotoFrame); return a.pauseFrames && this._pauseFrames > 0 ? this.currentFrame : this.currentFrame >= this._frames.length ? this.currentFrame = 1 : ++this.currentFrame }; c.prototype.play = function () { this._paused = false }; c.prototype.stop = function () { this._paused = true }; c.prototype.gotoAndStop = function (a) { this.currentFrame = this.getFrameNumber(a); this._paused = true }; c.prototype.gotoAndPlay = function (a) { this.currentFrame = this.getFrameNumber(a); this._paused = false }; c.prototype.render = function (a) { var b = this.getFrame(this.currentFrame); this._frameDisObj && this._frameDisObj != b.disObj && this.removeChild(this._frameDisObj); this.addChildAt(b.disObj, 0); this._frameDisObj = b.disObj; this.width = Math.max(this.width, this._frameDisObj.width); this.height = Math.max(this.height, this._frameDisObj.height); b.stop && this.stop(); c.superClass.render.call(this, a); !this._paused && a == this.getStage().context && this.nextFrame() } })(); (function () { var c = function () { this.name = NameUtil.createUniqueName("Graphics"); var a = document.createElement("canvas"); a.width = 1E3; a.height = 1E3; this._context = a.getContext("2d"); c._init(this, this._context) }; casual.Graphics = c; c.prototype._proxy = function (a, b, d) { this[b] = function () { return a[b].apply(a, arguments) || this }; if (d) this[d] = this[b] }; c._init = function (a, b) { a._proxy(b, "beginPath"); a._proxy(b, "closePath"); a._proxy(b, "stroke"); a._proxy(b, "fill"); a._proxy(b, "moveTo"); a._proxy(b, "lineTo"); a._proxy(b, "arcTo"); a._proxy(b, "arc"); a._proxy(b, "quadraticCurveTo", "curveTo"); a._proxy(b, "bezierCurveTo"); a._proxy(b, "rect"); a._proxy(b, "createLinearGradient"); a._proxy(b, "createRadialGradient"); a._proxy(b, "createPattern"); a.fillStyle = null; a.strokeStyle = null; a.fillAlpha = 1; a.lineAlpha = 1; a.lineWidth = 1 }; c.prototype.lineStyle = function (a, b, d, e, f, g) { this.lineWidth = this._context.lineWidth = a || 1; this.strokeStyle = this._context.strokeStyle = b || "0"; this.lineAlpha = d || 1; if (e != undefined) this._context.lineCap = e; if (f != undefined) this._context.lineJoin = f; if (g != undefined) this._context.miterLimit = g; return this }; c.prototype.beginLinearGradientFill = function (a, b, d, e, f, g) { a = this.createLinearGradient(a, b, d, e); b = 0; for (d = f.length; b < d; b++) a.addColorStop(g[b], f[b]); this.fillStyle = a; return this }; c.prototype.beginRadialGradientFill = function (a, b, d, e, f, g, h, i) { a = this.createRadialGradient(a, b, d, e, f, g); b = 0; for (d = h.length; b < d; b++) a.addColorStop(i[b], h[b]); this.fillStyle = a; return this }; c.prototype.beginBitmapFill = function (a, b) { b = b || ""; this.fillStyle = this.createPattern(a, b); return this }; c.prototype.beginFill = function (a, b) { if (a) this.fillStyle = this._context.fillStyle = a; this.fillAlpha = b || 1; return this }; c.prototype.endFill = function () { if (this.strokeStyle) { this._context.strokeStyle = this.strokeStyle; this._context.globalAlpha = this.lineAlpha; this._context.stroke() } if (this.fillStyle) { this._context.fillStyle = this.fillStyle; this._context.globalAlpha = this.fillAlpha; this._context.fill() } return this }; c.prototype.drawRect = function (a, b, d, e) { this.beginPath(); this.rect(a, b, d, e); this.closePath(); this.endFill(); return this }; c.prototype.drawRoundRect = function (a, b, d, e, f) { return this.drawRoundRectComplex(a, b, d, e, f, f, f, f) }; c.prototype.drawRoundRectComplex = function (a, b, d, e, f, g, h, i) { this.beginPath(); this.moveTo(a + f, b); this.lineTo(a + d - g, b); this.arc(a + d - g, b + g, g, -Math.PI / 2, 0, false); this.lineTo(a + d, b + e - h); this.arc(a + d - h, b + e - h, h, 0, Math.PI / 2, false); this.lineTo(a + i, b + e); this.arc(a + i, b + e - i, i, Math.PI / 2, Math.PI, false); this.lineTo(a, b + f); this.arc(a + f, b + f, f, Math.PI, Math.PI * 3 / 2, false); this.closePath(); this.endFill(); return this }; c.prototype.drawCircle = function (a, b, d) { this.beginPath(); this.arc(a + d, b + d, d, 0, Math.PI * 2, 0); this.closePath(); this.endFill(); return this }; c.prototype.drawEllipse = function (a, b, d, e) { if (d == e) return this.drawCircle(a, b, d); d = d / 2; e = e / 2; var f = 0.5522847498307933 * d, g = 0.5522847498307933 * e; a += d; b += e; this.beginPath(); this.moveTo(a + d, b); this.bezierCurveTo(a + d, b - g, a + f, b - e, a, b - e); this.bezierCurveTo(a - f, b - e, a - d, b - g, a - d, b); this.bezierCurveTo(a - d, b + g, a - f, b + e, a, b + e); this.bezierCurveTo(a + f, b + e, a + d, b + g, a + d, b); this.closePath(); this.endFill(); return this }; c.prototype.get = function () { return this._context.canvas }; c.prototype.setSize = function (a, b) { this._context.save(); if (a != undefined) this._context.canvas.width = a; if (b != undefined) this._context.canvas.height = b; this._context.restore(); return this }; c.prototype.clear = function () { this._context.clearRect(0, 0, this._context.canvas.width, this._context.canvas.height); this._context.restore(); return this } })(); (function () { var c = function (a) { casual.DisplayObject.call(this); this.name = NameUtil.createUniqueName("Shape"); this.mouseEnabled = false; this.graphics = a || new casual.Graphics }; casual.inherit(c, casual.DisplayObject); casual.Shape = c; c.prototype.render = function (a) { a.drawImage(this.graphics.get(), 0, 0) } })(); (function () { var c = function (a, b, d) { casual.DisplayObject.call(this); this.name = NameUtil.createUniqueName("Text"); this.text = a; this.color = b || "#000"; this.font = d || "12px Arial"; this.align = "start"; this.baseline = "alphabetic"; this.maxWidth = null; this.outline = false }; casual.inherit(c, casual.DisplayObject); casual.Text = c; c.prototype.render = function (a) { if (!(!this.text || this.text.length == 0)) { if (this.outline) a.strokeStyle = this.color; else a.fillStyle = this.color; a.font = this.font; a.textAlign = this.align; a.textBaseline = this.baseline; this.outline ? a.strokeText(this.text, 0, 0, this.maxWidth) : a.fillText(this.text, 0, 0, this.maxWidth) } }; c.prototype.getWidth = function (a) { if (!this.text || this.text.length == 0) return 0; return a.measureText(this.text).width } })(); (function () { var c = function (a, b, d, e) { casual.MovieClip.call(this); this.name = NameUtil.createUniqueName("Button"); a && this.setUpState(a); b && this.setOverState(b); d && this.setDownState(d); e && this.setDisabledState(e); this.state = c.state.UP; this.enabled = true; this.mouseChildren = false; this.useHandCursor = true; this.stop() }; casual.inherit(c, casual.MovieClip); casual.Button = c; c.state = { UP: "up", OVER: "over", DOWN: "down", DISABLED: "disabled" }; c.prototype.setUpState = function (a) { this.addFrameAt(new casual.Frame(a, c.state.UP), 0); this.upState = a; return this }; c.prototype.setOverState = function (a) { this.addFrameAt(new casual.Frame(a, c.state.OVER), 1); this.overState = a; return this }; c.prototype.setDownState = function (a) { this.addFrameAt(new casual.Frame(a, c.state.DOWN), 2); this.downState = a; return this }; c.prototype.setDisabledState = function (a) { this.addFrameAt(new casual.Frame(a, c.state.DISABLED), 3); this.disabledState = a; return this }; c.prototype.setEnabled = function (a) { if (this.enabled == a) return this; if (this.mouseEnabled = this.enabled = a) this.currentFrame == 4 && this.gotoAndStop(c.state.UP); else this.disabledState ? this.gotoAndStop(c.state.DISABLED) : this.gotoAndStop(c.state.UP); return this }; c.prototype.setState = function (a) { if (this.state != a) { this.state = a; switch (a) { case c.state.OVER: case c.state.DOWN: case c.state.UP: if (!this.enabled) this.mouseEnabled = this.enabled = true; this.gotoAndStop(a); break; case c.state.DISABLED: this.setEnabled(false) } } }; c.prototype.onMouseEvent = function (a) { if (this.enabled) switch (a.type) { case "mousemove": if (this.onMouseOver && this.state != c.state.OVER) { a.type = "mouseover"; this.onMouseOver(a) } else this.onMouseMove && this.state == c.state.OVER && this.onMouseMove(a); this.overState && this.state == c.state.UP && this.setState(c.state.OVER); break; case "mouseout": this.upState && this.setState(c.state.UP); if (this.onMouseOut) { a.type = "mouseout"; this.onMouseOut(a) } break; case "mousedown": this.downState && this.setState(c.state.DOWN); this.onMouseDown && this.onMouseDown(a); break; case "mouseup": this.overState && this.setState(c.state.OVER); this.onMouseUp && this.onMouseUp(a) } }; c.prototype.onMouseMove = null; c.prototype.onMouseOver = null; c.prototype.onMouseOut = null; c.prototype.onMouseDown = null; c.prototype.onMouseUp = null })(); (function () { var c = function (a, b, d) { this._playing = this._loaded = false; this._autoPlay = b; this._loop = d || false; try { this._element = document.createElement("audio"); this._element.preload = true; this._element.src = a; this._element.load(); this._element.addEventListener("ended", casual.delegate(this._endHandler, this), false); this._loadInterval = setInterval(casual.delegate(this._loadHandler, this), 10) } catch (e) { } }; casual.Audio = c; c.prototype._loadHandler = function () { if (this._element.readyState > 2) { this._loaded = true; clearTimeout(this._loadInterval); this._loadInterval = null; this._autoPlay && this.play() } if (this._element.error) { clearTimeout(this._loadInterval); this._loadInterval = null } }; c.prototype._endHandler = function () { if (this._loop) this.play(); else this._playing = false }; c.prototype.play = function () { if (this.isLoaded()) { this._element.play(); this._playing = true } else this._autoPlay = true }; c.prototype.stop = function () { if (this.isPlaying()) { this._element.pause(); this._playing = false } }; c.prototype.isLoaded = function () { return this._loaded }; c.prototype.isPlaying = function () { return this._playing } })(); window.trace = casual.trace; window.EventBase = casual.EventBase; window.StageEvent = casual.StageEvent; window.EventDispatcher = casual.EventDispatcher; window.Matrix = casual.Matrix; window.Point = casual.Point; window.Rectangle = casual.Rectangle; window.Frame = casual.Frame; window.Astar = casual.Astar; window.NameUtil = casual.NameUtil; window.DisplayObject = casual.DisplayObject; window.Graphics = casual.Graphics; window.Shape = casual.Shape; window.Bitmap = casual.Bitmap; window.DisplayObjectContainer = casual.DisplayObjectContainer; window.Sprite = casual.Sprite; window.MovieClip = casual.MovieClip; window.Stage = casual.Stage; window.Text = casual.Text; window.Button = casual.Button; </script> <script type="text/javascript"> SlicedBitmap = function (a) { casual.DisplayObject.call(this); this.name = NameUtil.createUniqueName("SlicedBitmap"); this.image = a; this.slices = []; this.pos = [] }; casual.inherit(SlicedBitmap, casual.DisplayObject); SlicedBitmap.prototype.addSlice = function (a, b, c) { this.pos.push([b || 0, c || 0]); this.slices.push(a) }; SlicedBitmap.prototype.clear = function () { this.slices.length = 0; this.pos.length = 0 }; SlicedBitmap.prototype.render = function (a) { for (var b = 0; b < this.slices.length; b++) { var c = this.slices[b]; a.drawImage(this.image, c[0], c[1], c[2], c[3], this.pos[b][0], this.pos[b][1], c[2], c[3]) } }; ImageLoader = function (a) { casual.EventDispatcher.call(this); this.resources = a; this.images = []; this._loaded = 0 }; casual.inherit(ImageLoader, casual.EventDispatcher); ImageLoader.load = function (a, b) { (new ImageLoader(a, b)).load() }; ImageLoader.prototype.load = function () { if (this._loaded > this.resources.length - 1) this.dispatchEvent({ type: "complete", target: this, params: this.images }); else { var a = new Image; a.onload = casual.delegate(this._loadHandler, this); a.crossOrigin = 'anonymous'; a.src = this.resources[this._loaded] } }; ImageLoader.prototype._loadHandler = function (a) { this.images.push({ src: this.resources[this._loaded], image: a.target }); this.dispatchEvent({ type: "loaded", target: this, params: a.target }); this._loaded++; this.load() }; ImageLoader.prototype.getLoaded = function () { return this.images.length }; ImageLoader.prototype.getTotal = function () { return this.resources.length }; ImageLoader.prototype.isLoaded = function () { return this.images.length == this.resources.length }; UI = { images: null }; UI.initNumber = function (a) { UI.number = a; UI.gold = {}; UI.gold[0] = [0, 0, 19, 22]; UI.gold[1] = [19, 0, 13, 22]; UI.gold[2] = [32, 0, 15, 22]; UI.gold[3] = [47, 0, 15, 22]; UI.gold[4] = [62, 0, 15, 22]; UI.gold[5] = [77, 0, 15, 22]; UI.gold[6] = [92, 0, 16, 22]; UI.gold[7] = [108, 0, 16, 22]; UI.gold[8] = [124, 0, 15, 22]; UI.gold[9] = [139, 0, 16, 22]; UI.white = {}; UI.white[0] = [5, 25, 13, 20]; UI.white[1] = [18, 25, 11, 20]; UI.white[2] = [29, 25, 11, 20]; UI.white[3] = [40, 25, 11, 20]; UI.white[4] = [53, 25, 12, 20]; UI.white[5] = [64, 25, 11, 20]; UI.white[6] = [76, 25, 12, 20]; UI.white[7] = [88, 25, 12, 20]; UI.white[8] = [100, 25, 12, 20]; UI.white[9] = [112, 25, 12, 20] }; UI.setNumber = function (a, b, c, d) { a.clear(); c = c ? "" : "0"; b = b >= 10 ? b.toString() : c + b.toString(); for (var e = c = 0; c < b.length; c++) { var f = d ? UI.white[b[c]] : UI.gold[b[c]]; a.addSlice(f, e, 0); e += f[2] + 2 } return a }; UI.setBaseScoreAndRate = function (a, b, c) { if (UI.scoreText.visible = UI.baseScore.visible = UI.scoreRate.visible = c) { a && UI.setNumber(UI.baseScore, a, true, true); b && UI.setNumber(UI.scoreRate, b, true, true) } }; UI.showBubble = function (a, b, c, d, e, f) { if (!UI.bubble) { UI.bubble = new Sprite; var g = new Bitmap(UI.images[2].image, [475, 250, 100, 75]); g.regX = 50; UI.bubble.addChild(g) } if (a) { for (UI.bubble.getChildAt(0).scaleX = c ? -1 : 1; UI.bubble.getNumChildren() > 1;) UI.bubble.removeChildAt(1); if (b == "noPlay") { a = new Bitmap(UI.images[2].image, [244, 5, 50, 26]); a.x = -25; a.y = 25; UI.bubble.addChild(a) } else if (b == "gamble0") { a = new Bitmap(UI.images[2].image, [121, 5, 50, 26]); a.x = -25; a.y = 25; UI.bubble.addChild(a) } else if (b == "gamble1") { a = new SlicedBitmap(UI.images[2].image); a.addSlice([185, 61, 16, 25]); a.addSlice([211, 92, 28, 28], 18); a.x = -23; a.y = 22; UI.bubble.addChild(a) } else if (b == "gamble2") { a = new SlicedBitmap(UI.images[2].image); a.addSlice([202, 61, 16, 25]); a.addSlice([211, 92, 28, 28], 18); a.x = -23; a.y = 22; UI.bubble.addChild(a) } else if (b == "gamble3") { a = new SlicedBitmap(UI.images[2].image); a.addSlice([219, 61, 16, 25]); a.addSlice([211, 92, 28, 28], 18); a.x = -23; a.y = 22; UI.bubble.addChild(a) } UI.bubble.x = e; UI.bubble.y = f; d.addChild(UI.bubble) } else UI.bubble.parent && UI.bubble.parent.removeChild(UI.bubble) }; UI.initToolBar = function (a) { var b = new Sprite, c = [13, 320, 316, 120], d = new Bitmap(a, c); c = new Bitmap(a, c); d.scaleX = 1; c.scaleX = -1; c.x = c.width * 2; b.addChild(d); b.addChild(c); b.width = c.x; c = [206, 132, 47, 49]; a = new Bitmap(a, c); a.x = (b.width >> 1) + 15; a.y = 9; b.addChild(a); a.visible = false; d = new SlicedBitmap(UI.number); d.x = a.x + a.width + 5; d.y = a.y + 4; b.addChild(d); d.visible = false; c = new SlicedBitmap(UI.number); c.x = a.x + a.width + 5; c.y = a.y + 26; b.addChild(c); c.visible = false; var e = new Sprite; e.x = a.x - 95; e.y = 6; b.addChild(e); UI.lastPokers = e; UI.scoreText = a; UI.scoreRate = d; UI.baseScore = c; UI.toolbar = b }; UI.showWin = function (a, b) { if (a) { if (!UI.win) { var c = new MovieClip, d = new Bitmap(UI.images[8].image, [0, 0, 86, 90]); d.x = 270; d.y = 35; c.addFrame(new Frame(d)); d = new Bitmap(UI.images[8].image, [0, 100, 86, 100]); d.x = 275; d.y = 20; c.addFrame(new Frame(d)); d = new Bitmap(UI.images[6].image); c.addChild(d); c.x = b.getStageWidth() - d.width >> 1; c.y = 100; UI.win = c } b.addChild(UI.win) } else UI.win && UI.win.parent && UI.win.parent.removeChild(UI.win) }; UI.showLose = function (a, b) { if (a) { if (!UI.lose) { var c = new MovieClip, d = new Bitmap(UI.images[9].image, [0, 0, 91, 42]); d.x = 210; d.y = 75; c.addFrame(new Frame(d)); d = new Bitmap(UI.images[9].image, [0, 45, 73, 85]); d.x = 210; d.y = 20; c.addFrame(new Frame(d)); d = new Bitmap(UI.images[7].image); c.addChild(d); c.x = b.getStageWidth() - d.width >> 1; c.y = 100; UI.lose = c } b.addChild(UI.lose) } else UI.lose && UI.lose.parent && UI.lose.parent.removeChild(UI.lose) }; TweenUtil = function (a, b, c) { this.target = a; this.newProps = c; this.oldProps = {}; for (var d in this.newProps) if (d == "onStart" || d == "onComplete" || d == "onUpdate") this[d] = this.newProps[d]; else if (this.target[d] !== undefined) this.oldProps[d] = this.target[d]; this.duration = b; this.interval = TweenUtil.interval; this.total = this.duration / this.interval; this.count = 0; this.timerID = null }; TweenUtil.prototype.start = function () { TweenUtil.addTween(this); TweenUtil.activate(); this.onStart && this.onStart() }; TweenUtil.prototype.stop = function () { TweenUtil.removeTween(this) }; TweenUtil.prototype._trigger = function () { this.count++; this.onUpdate && this.onUpdate(); if (this.count >= this.total) { for (var a in this.newProps) this.target[a] = this.newProps[a]; this._finish() } else for (a in this.newProps) this.target[a] += (this.newProps[a] - this.oldProps[a]) / this.total }; TweenUtil.prototype._finish = function () { this.stop(); this.onComplete && this.onComplete(); this.newProps = this.oldProps = this.target = null }; TweenUtil.timerID = null; TweenUtil.interval = 1E3 / 30; TweenU.........完整代码请登录后点击上方下载按钮下载查看
网友评论0