API Docs for: 1.10.1 最后更新日期:2016年03月28日
Google搜索   
Show:

File: lib/ui/LCheckBox-0.1.1.js

/** @language chinese
 * <p>lufylegend.js专用UI,多选按钮。</p>
 * <p>使用时需要引进lufylegend.ui-x.x.x.js文件。</p>
 * @class UI:LCheckBox
 * @constructor
 * @extends LSprite
 * @param {LDisplayObject} layer [可选]多选按钮的未选中状态样式。
 * @param {LDisplayObject} layerSelect [可选]多选按钮的选中状态样式。
 * @since 0.1.0
 * @examplelink <p><a href="../../../api/ui/LCheckBox.html" target="_blank">测试链接</a></p>
 * @public
 */
var LCheckBox = (function () {
	function LCheckBox (layer, layerSelect) {
		var s = this, grd;
		LExtends(s, LSprite, []);
		s.type = "LCheckBox";
		if (!layer) {
			grd = LGlobal.canvas.createLinearGradient(0, -20, 0, 40);
			grd.addColorStop(0, "#FFFFFF");
			grd.addColorStop(1, "#CCCCCC");
			layer = new LSprite();
			layer.graphics.drawRoundRect(1, "#CCCCCC", [0, 0, 20, 20, 4], true, grd);
		} else {
			layer = layer.clone();
		}
		if (!layerSelect) {
			grd = LGlobal.canvas.createLinearGradient(0, -20, 0, 20);
			grd.addColorStop(0, "#FFFFFF");
			grd.addColorStop(1, "#008000");
			layerSelect = new LSprite();
			layerSelect.graphics.drawLine(5, grd, [4, 10, 12, 16]);
			layerSelect.graphics.drawLine(5, grd, [10, 16, 16, 4]);
		} else {
			layerSelect = layerSelect.clone();
		}
		s.layer = layer;
		s.layerSelect = layerSelect;
		s.addChild(s.layer);
		s.addChild(s.layerSelect);
		/** @language chinese
		 * 按钮的是否选中
		 * @property checked
		 * @type Boolean
		 * @since 0.1.0
		 * @public
		 */
		s.layerSelect.visible = s.checked = false;
		s.addEventListener(LMouseEvent.MOUSE_UP, s._onChange);
	}
	LCheckBox.ON_CHANGE = "onchange";
	LCheckBox.prototype._onChange = function (e) {
		var s = e.clickTarget;
		s.checked = !s.checked;
		s.layerSelect.visible = s.checked;
		s.dispatchEvent(LCheckBox.ON_CHANGE);
	};
	/** @language chinese
	 * 设置按钮选中状态。
	 * @method setChecked
	 * @param {String} value 按钮选中状态。
	 * @since 0.1.0
	 * @public
	 */
	LCheckBox.prototype.setChecked = function (value) {
		var s = this;
		s.checked = value;
		s.layerSelect.visible = s.checked;
	};
	LCheckBox.prototype.clone = function () {
		var s = this, a = new LCheckBox(s.layer.clone(), s.layerSelect.clone());
		a.setChecked(s.checked);
		return a;
	};
	return LCheckBox;
})();