人生啊人生 3 ماه پیش
والد
کامیت
5e5d92cc54

+ 5 - 0
user_web/src/components/QvSimulation/QvSimulationMain.vue

@@ -218,6 +218,11 @@ const ProcessInit = () => {
             QvProcessEventStore().obj.list[QvProcessEventStore().obj.listIndex].name
         );
     }
+
+    // 截图逻辑
+    QvEvent.find().callbackScreenshot = function() {
+
+    }
     
 }
 

+ 48 - 0
user_web/src/components/QvSimulation/QvThreeWorldEvent/js/QvEvent.js

@@ -44,6 +44,11 @@ export class QvEvent {
          */
         this.callbackDownNext = null;
 
+        /**
+         * 截图回调
+         */
+        this.callbackScreenshot = null;
+
         /**
          * 记录当前的事件名字
          */
@@ -115,6 +120,49 @@ export class QvEvent {
         }
 
     }
+
+    /**
+     * 触发截图逻辑进行回调
+     * objHtml          目标被截图的html 元素对象 例如 document.getElementById("screenshot")
+     */
+    callbackScreenshotEvent = function(objHtml) {
+
+        let thisClass = this;
+        if (typeof thisClass.callbackScreenshot != 'function') {
+            return thisClass;
+        }
+        
+        let objThreeWorldEventMain = this.objThreeWorldEventMain;
+
+        let objIframeEdit = objThreeWorldEventMain.objIframeEdit;
+        let objIframe = objThreeWorldEventMain.objIframe;
+        let objScene = objThreeWorldEventMain.objScene;
+        let BABYLON = objThreeWorldEventMain.BABYLON;
+        let ChengGuangYuanJing = objIframe.ChengGuangYuanJing;
+
+        objIframe.html2canvas(
+            objIframe.$(objHtml),
+            {
+                allowTaint: true,
+                taintTest: false,
+                onrendered: function(canvas) {
+
+                    canvas.id = "mycanvas";
+                    // 生成base64图片数据
+                    var dataUrl = canvas.toDataURL();
+                    // console.log(
+                    //     "生成的图片", dataUrl
+                    // );
+
+                    thisClass.callbackScreenshot(dataUrl);
+
+                }
+            }
+        );
+
+        return thisClass;
+
+    }
     
     /**
      * 根据不同的类型,操作不同的三维