function2.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. function FingerComponent(obj_list,sync_obj){
  2. this.TRANSFORM_PREFIXED = this.getVendorPrefixed(["transform", "msTransform", "MozTransform", "webkitTransform", "OTransform"]);
  3. this.boxList = [];
  4. this.flag=false;
  5. var temp = this.assignBox(sync_obj);
  6. this.boxList.push(temp);
  7. for(var i = 0,objId;objId=obj_list[i];i++){
  8. temp = this.assignBox(objId);
  9. this.boxList.push(temp);
  10. this.listen(temp);
  11. }
  12. var _this=this;
  13. var loop=function(){
  14. for(var i=0; i<_this.boxList.length; i++) {
  15. _this.transform(_this.boxList[i]);
  16. }
  17. requestAnimationFrame(loop);
  18. };
  19. loop();
  20. }
  21. function nextPage(code,num){
  22. saveRecord(code);
  23. setTimeout(1500,location.replace(num+'.php'));
  24. }
  25. function dragPic(){
  26. dragTime = Math.floor(Date.now() / 1000);
  27. }
  28. FingerComponent.prototype.checkRes=function() {
  29. check.style.display = "inline";
  30. check.style.top = -250;
  31. check.style.left = 600;
  32. var arrow=this.boxList[0];
  33. var degx=Math.abs(arrow.degx);
  34. var degy=Math.abs(arrow.degy);
  35. var scale=Math.abs(arrow.scale)===1;
  36. saveRecord(250);
  37. saveRecordr(0,degx,degy,z,arrow.scale);
  38. //confirm(degx);
  39. //confirm(degy);
  40. var z=Math.abs(arrow.degx,arrow.degy);
  41. var x=degx >=0 && degx <=30;
  42. var y=degy >= 160 && degx <=200 ;
  43. //confirm(arrow.scale);
  44. return x && y && scale;
  45. }
  46. FingerComponent.prototype.assignBox=function(picS) {
  47. var pic = document.getElementById(picS);
  48. //console.log(pic);
  49. return {
  50. element: pic,
  51. isUpdated: true,
  52. x: 0,
  53. y: 0,
  54. z: 0,
  55. rad: 0,
  56. scale: 1,
  57. rafId: 0,
  58. degx: 0,
  59. degy: 0
  60. }
  61. }
  62. FingerComponent.prototype.listen=function(pBoxO) {
  63. var finger = new Fingers(pBoxO.element);
  64. var flag=false;
  65. var _this=this;
  66. /*finger.addGesture(Fingers.gesture.Drag, null).addHandler(function(pEventType, pData, pFingers) {
  67. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  68. //pBoxO.x += pFingers[0].getDeltaX();
  69. //pBoxO.y += pFingers[0].getDeltaY();
  70. var x=pFingers[0].getDeltaX();
  71. var y=pFingers[0].getDeltaY();
  72. //console.log("X:"+x+" Y:"+y);
  73. var temp=pBoxO.rad+y/3;
  74. if(temp>=-73 && temp<=17)
  75. pBoxO.rad = temp;//(y/100);
  76. pBoxO.isUpdated = true;
  77. }
  78. else if(pEventType === Fingers.Gesture.EVENT_TYPE.start) {
  79. //topZIndex++;
  80. //pBoxO.zIndex = topZIndex;
  81. //pBoxO.isUpdated = true;
  82. }
  83. });*/
  84. /*finger.addGesture(Fingers.gesture.Hold, { nbFingers: 1}).addHandler(function(pEventType,pData){
  85. if(pEventType === Fingers.Gesture.EVENT_TYPE.instant)
  86. flag = true ;
  87. });*/
  88. finger.addGesture(Fingers.gesture.Drag, null).addHandler(function(pEventType, pData, pFingers) {
  89. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  90. for(var i=0,obj; obj=_this.boxList[i]; i++) {
  91. obj.degx += pFingers[0].getDeltaY() ;
  92. if(obj.degx>=360)
  93. obj.degx-=360;
  94. else if(obj.degx<=-360)
  95. obj.degx+=360;
  96. obj.degy += pFingers[0].getDeltaX() ;
  97. if(obj.degy>=360)
  98. obj.degy-=360;
  99. else if(obj.degy<=-360)
  100. obj.degy+=360;
  101. obj.isUpdated = true;
  102. //pBoxO.isUpdated = true;
  103. //obj.rad += pData.deltaRotation;
  104. //obj.scale += pData.deltaScale;
  105. saveRecordr(0,obj.degx,obj.degy,0,0);
  106. }
  107. }
  108. });
  109. finger.addGesture(Fingers.gesture.Transform, null).addHandler(function(pEventType, pData, pFingers) {
  110. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  111. for(var i=0,obj; obj=_this.boxList[i]; i++) {
  112. obj.rad += pData.deltaRotation;
  113. //obj.scale += pData.deltaScale;
  114. obj.scale = Math.max(0.5, Math.min(2, obj.scale * pData.deltaScale));
  115. obj.isUpdated = true;
  116. if (obj.scale>1)
  117. {
  118. saveRecordr(301,0,0,0,obj.scale);
  119. }
  120. if(obj.scale < 1)
  121. {
  122. saveRecordr(302,0,0,0,obj.scale);
  123. }
  124. }
  125. }
  126. });
  127. pBoxO.fingers = finger ;
  128. }
  129. FingerComponent.prototype.transform=function(pBoxO) {
  130. if(pBoxO.isUpdated) {
  131. pBoxO.element.style[this.TRANSFORM_PREFIXED] = "translateZ(0) " +
  132. "translate(" + pBoxO.x + "px, " + pBoxO.y + "px) " +
  133. "scale(" + pBoxO.scale + ") " +//+ "rotate3d(0,0,0," + pBoxO.rad + "rad) ";
  134. "rotate(" + pBoxO.rad + "rad) "+
  135. "rotateY("+pBoxO.degy+"deg)" +
  136. "rotateX("+pBoxO.degx+"deg)";
  137. pBoxO.element.style.zIndex = pBoxO.zIndex;
  138. pBoxO.isUpdated = true;
  139. }
  140. }
  141. FingerComponent.prototype.loop=function(){
  142. var x=this.loop();
  143. for(var i=0; i<this.boxList.length; i++) {
  144. this.transform(this.boxList[i]);
  145. }
  146. requestAnimationFrame(x);
  147. }
  148. FingerComponent.prototype.getVendorPrefixed=function(pArrayOfPrefixes) {
  149. var result = null;
  150. for (var i=0; i<pArrayOfPrefixes.length; i++) {
  151. if (document.body.style[pArrayOfPrefixes[i]] !== undefined) {
  152. result = pArrayOfPrefixes[i];
  153. break;
  154. }
  155. }
  156. return result;
  157. }
  158. function saveRecord(code){
  159. xmlhttp = new XMLHttpRequest();
  160. xmlhttp.onreadystatechange = function() {
  161. if (xmlhttp.readyState==4) {
  162. if(xmlhttp.status==200) {
  163. xmlhttp.abort();
  164. }
  165. }
  166. };
  167. xmlhttp.open("POST","saveRecord.php",true);
  168. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  169. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000));
  170. }
  171. function saveRecords(code,time){
  172. xmlhttp = new XMLHttpRequest();
  173. xmlhttp.onreadystatechange = function() {
  174. if (xmlhttp.readyState==4) {
  175. if(xmlhttp.status==200) {
  176. xmlhttp.abort();
  177. }
  178. }
  179. };
  180. xmlhttp.open("POST","saveRecord.php",true);
  181. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  182. xmlhttp.send("codenum=" + code + "&dragtime=" + time);
  183. }
  184. function saveRecordr(code,rotX,rotY,rotZ,rotS){
  185. xmlhttp = new XMLHttpRequest();
  186. xmlhttp.onreadystatechange = function() {
  187. if (xmlhttp.readyState==4) {
  188. if(xmlhttp.status==200) {
  189. xmlhttp.abort();
  190. }
  191. }
  192. };
  193. xmlhttp.open("POST","saveRecord.php",true);
  194. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  195. xmlhttp.send("codenum=" + code + "&time=" + Math.floor(Date.now() / 1000) + "&rotx="+rotX+"&roty="+rotY+"&rotz="+rotZ+"&scale="+rotS);
  196. }