瀏覽代碼

Add dispose() method, which disconnects to remove observers.
Change .filter() to .some().

Brian Zinn 7 年之前
父節點
當前提交
d81e9f5698
共有 1 個文件被更改,包括 12 次插入4 次删除
  1. 12 4
      gui/src/2D/controls/virtualKeyboard.ts

+ 12 - 4
gui/src/2D/controls/virtualKeyboard.ts

@@ -172,10 +172,9 @@ export class VirtualKeyboard extends StackPanel {
      * @param input defines the target control
      * @param input defines the target control
      */
      */
     public connect(input: InputText): void {
     public connect(input: InputText): void {
-        // .find not available on IE
-        let filtered = this._connectedInputTexts.filter(a => a.input === input);
-        if (filtered.length === 1) {
-            return; // already connected
+        const inputTextAlreadyConnected = this._connectedInputTexts.some(a => a.input === input);
+        if (inputTextAlreadyConnected) {
+            return;
         }
         }
 
 
         if (this._onKeyPressObserver === null) {
         if (this._onKeyPressObserver === null) {
@@ -264,6 +263,15 @@ export class VirtualKeyboard extends StackPanel {
         connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);
         connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);
     }
     }
 
 
+    /**
+     * Release all resources
+     */
+    public dispose(): void {
+        super.dispose();
+
+        this.disconnect();
+    }
+
     // Statics
     // Statics
 
 
     /**
     /**