common.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. /**
  2. * Created by 627526248 on 2014/11/29.
  3. */
  4. /**
  5. * 增加元素,{src:"b1_icons",x:0,y:0,w:315,h:34,X:54,Y:160,obj:null}或者数组
  6. */
  7. /**
  8. *
  9. * @param data
  10. * @param layer
  11. * @param dataSource 数据原,默认是dataList,element内部可以单独指定,优先级最高
  12. * {type
  13. * src
  14. * anim
  15. * center
  16. * click_up
  17. * init
  18. * params:只有当type为object时有效,创实例化object并把params传进去
  19. * }
  20. * @returns {*}
  21. */
  22. function addElements(data, layer, dataSource,config) {
  23. if (!(data instanceof Array)) {
  24. data = [data];
  25. }
  26. for (var i = 0; i < data.length; i++) {
  27. var element = data[i];
  28. var _dataSource = element.dataSource || dataSource;
  29. if (element.type == "button") {
  30. var src=element.src instanceof Function?element.src():element.src;
  31. element.obj = new LButton(getBitmap(src, element.x, element.y, element.w, element.h, _dataSource));
  32. } else if (element.type == "input") {
  33. var theTextField = new LTextField();
  34. theTextField.border = isNaN(element.border) ? element.border : 1;
  35. theTextField.setType(LTextFieldType.INPUT);
  36. theTextField.color = element.color ? element.color : "#FFFFFF";
  37. theTextField.size = element.size ? element.size : 15;
  38. element.obj = theTextField;
  39. } else if (typeof element.type == "function") {
  40. element.obj = new element.type(element.params);
  41. //return;
  42. } else {
  43. if (element.src) {
  44. var src=element.src instanceof Function?element.src():element.src;
  45. element.obj = new LSprite();
  46. var bitmap;
  47. if(element.load){//增加对异步加载的支持
  48. __loadImage(src,element.x, element.y, element.w, element.h,element.obj,element.onload);
  49. }else{
  50. bitmap=getBitmap(src, element.x, element.y, element.w, element.h, _dataSource);
  51. element.obj.addChild(bitmap);
  52. }
  53. } else if (element.obj) {
  54. } else {
  55. console.error("addElements 缺少显示对象");
  56. return;
  57. }
  58. }
  59. element.obj.x = element.X ? element.X : 0;
  60. element.obj.y = element.Y ? element.Y : 0;
  61. element.obj.alpha=element.alpha||1;
  62. element.obj.scaleX=element.scaleX||1;
  63. element.obj.scaleY=element.scaleY||1;
  64. element.obj.visible= typeof(element.visible) == "boolean"?element.visible:true;
  65. element.obj.rotate=element.rotate||0;
  66. if (element.center) {
  67. setMiddleX(element.obj);
  68. }
  69. if (element.anim) {
  70. var anims = element.anim;
  71. if (!(anims instanceof Array)) {
  72. anims = [anims];
  73. }
  74. var tweenLite = null;
  75. for (var j = 0; j < anims.length; j++) {
  76. var anim=anims[j];
  77. anim.ease = anim.ease ? anim.ease : LEasing.Sine.easeIn;
  78. if (!tweenLite) {
  79. tweenLite = LTweenLite.to(element.obj, typeof(anim.duration)=='number' ? anim.duration :.6, anim);
  80. }else{
  81. tweenLite.to(element.obj,typeof(anim.duration)=='number' ? anim.duration : 1, anim);
  82. }
  83. }
  84. }
  85. if (element.click) {
  86. element.obj.addEventListener(LMouseEvent.MOUSE_DOWN, element.click);
  87. } else if (element.click_up) {
  88. element.obj.addEventListener(LMouseEvent.MOUSE_UP, element.click_up);
  89. }
  90. if (layer) {
  91. layer.addChild(element.obj);
  92. }
  93. if (element.init) {
  94. element.init(element.obj);
  95. }
  96. if (element.tag) {
  97. element.obj.tag=element.tag;
  98. }
  99. }
  100. return data;
  101. }
  102. function __loadImage(src,x,y,w,h,parent,onload){
  103. var loader = new LLoader();
  104. loader.addEventListener(LEvent.COMPLETE, function (event) {
  105. var bitmapData = new LBitmapData(event.target);
  106. var bitmap = new LBitmap(bitmapData, x, y, w, h);
  107. bitmap.alpha=.1;
  108. //setTimeout(function(){
  109. parent.addChild(bitmap);
  110. LTweenLite.to(bitmap, .2, {alpha: 1});
  111. if(onload){
  112. onload(bitmap,parent);
  113. }
  114. //},1000);
  115. });
  116. loader.load(src, "bitmapData");
  117. }
  118. function zLoadImage(src,onload,params){
  119. var loader = new LLoader();
  120. loader.addEventListener(LEvent.COMPLETE, function (event) {
  121. var bitmapData = new LBitmapData(event.target);
  122. if(onload){
  123. onload(bitmapData,params);
  124. }
  125. });
  126. loader.load(src, "bitmapData");
  127. }
  128. function setMiddleX(obj) {
  129. obj.x = LGlobal.width / 2 - obj.getWidth() / 2;
  130. }
  131. function setScale(obj, value) {
  132. obj.scaleX = value;
  133. obj.scaleY = value;
  134. }
  135. function getBitmap(imageName, x, y, w, h, dataSource) {
  136. dataSource = dataSource || dataList;
  137. var bitmapdata = new LBitmapData(dataSource[imageName], x, y, w, h);
  138. return new LBitmap(bitmapdata);
  139. }
  140. function getBitmapData(imageName, x, y, w, h, dataSource) {
  141. dataSource = dataSource || dataList;
  142. var bitmapdata = new LBitmapData(dataSource[imageName], x, y, w, h);
  143. return bitmapdata;
  144. }
  145. function createTextView(content, size) {
  146. content = content || "";
  147. size = size || 18;
  148. var text = new LTextField();
  149. text.setType(LTextFieldType.TEXT);
  150. text.size = size;
  151. text.weight = "bolder";
  152. text.color = "#E68C00";
  153. text.lineWidth = 2;
  154. text.stroke = true;
  155. text.font = "微软雅黑";
  156. text.text = content;
  157. return text;
  158. }
  159. function MiddleBitmap(bitmap) {
  160. var self = this;
  161. base(self, LSprite, []);
  162. if (typeof(bitmap) =='string') {
  163. self.bitmapTitle = getBitmap(bitmap);
  164. } else if (bitmap instanceof LBitmapData) {
  165. self.bitmapTitle = new LBitmap(bitmap);
  166. } else if (bitmap instanceof LBitmap) {
  167. self.bitmapTitle = bitmap;
  168. } else if(bitmap instanceof Object){
  169. self.bitmapTitle = getBitmap(bitmap.name,bitmap.x,bitmap.y,bitmap.w,bitmap.h);
  170. } else {
  171. console.info("创建[MiddleBitmap]出错!");
  172. return;
  173. }
  174. self.bitmapTitle.x = -self.bitmapTitle.getWidth() * 0.5;
  175. self.bitmapTitle.y = -self.bitmapTitle.getHeight() * 0.5;
  176. self.addChild(self.bitmapTitle);
  177. }
  178. MiddleBitmap.prototype.setScale = function (value) {
  179. var self = this;
  180. self.scaleX = value;
  181. self.scaleY = value;
  182. };
  183. function rangeRandom(under, over) {
  184. switch (arguments.length) {
  185. case 1:
  186. return parseInt(Math.random() * under + 1);
  187. case 2:
  188. return parseInt(Math.random() * (over - under + 1) + under);
  189. default:
  190. return 0;
  191. }
  192. }
  193. function fade_in(view) {
  194. view.alpha = 0.1;
  195. LTweenLite.to(view, .3, {alpha: 1});
  196. }
  197. var extend = function (target, source) {
  198. for (var p in source) {
  199. if (source.hasOwnProperty(p)&&!target[p]) {
  200. target[p] = source[p];
  201. console.log(p)
  202. }else{
  203. }
  204. }
  205. return target;
  206. };
  207. var utils={};
  208. utils.extend = function() {
  209. var options, name, src, copy, copyIsArray, clone,
  210. target = arguments[0] || {},
  211. i = 1,
  212. length = arguments.length,
  213. deep = false;
  214. //如果第一个值为bool值,那么就将第二个参数作为目标参数,同时目标参数从2开始计数
  215. if ( typeof target === "boolean" ) {
  216. deep = target;
  217. target = arguments[1] || {};
  218. // skip the boolean and the target
  219. i = 2;
  220. }
  221. // 当目标参数不是object 或者不是函数的时候,设置成object类型的
  222. if ( typeof target !== "object" && !utils.isFunction(target) ) {
  223. target = {};
  224. }
  225. //如果extend只有一个函数的时候,那么将跳出后面的操作
  226. if ( length === i ) {
  227. target = this;
  228. --i;
  229. }
  230. for ( ; i < length; i++ ) {
  231. // 仅处理不是 null/undefined values
  232. if ( (options = arguments[ i ]) != null ) {
  233. // 扩展options对象
  234. for ( name in options ) {
  235. src = target[ name ];
  236. copy = options[ name ];
  237. // 如果目标对象和要拷贝的对象是恒相等的话,那就执行下一个循环。
  238. if ( target === copy ) {
  239. continue;
  240. }
  241. // 如果我们拷贝的对象是一个对象或者数组的话
  242. if ( deep && copy && ( utils.isPlainObject(copy) || (copyIsArray = utils.isArray(copy)) ) ) {
  243. if ( copyIsArray ) {
  244. copyIsArray = false;
  245. clone = src && utils.isArray(src) ? src : [];
  246. } else {
  247. clone = src && utils.isPlainObject(src) ? src : {};
  248. }
  249. //不删除目标对象,将目标对象和原对象重新拷贝一份出来。
  250. target[ name ] = utils.extend( deep, clone, copy );
  251. // 如果options[name]的不为空,那么将拷贝到目标对象上去。
  252. } else if ( copy !== undefined ) {
  253. target[ name ] = copy;
  254. }
  255. }
  256. }
  257. }
  258. // 返回修改的目标对象
  259. return target;
  260. };