[add] EventBus使用 雙向溝通

This commit is contained in:
建喵 2022-08-01 17:12:37 +08:00
parent cf95786b9c
commit 7d4efe136f
9 changed files with 103927 additions and 134 deletions

View File

@ -21,21 +21,28 @@ export default class HelloWorld extends cc.Component {
// LIFE-CYCLE CALLBACKS:
// protected onLoad() {}
protected onLoad() {
let self = this;
this.Label.string = this.Text;
window["eventBus"].on('SendContent', (content: string) => {
self.Label.string = content;
})
}
public onClickBtn() {
let url: string = window.location.search;
let URLscheme: any[] = [];
if (url.indexOf("?") !== -1) {
let str = url.substring(1);
let strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
URLscheme[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
}
if (URLscheme["host"]) {
opener?.window.parent.postMessage({ data: "hello" }, URLscheme["host"]);
window.close();
}
window["eventBus"].emit("Alert", "hello");
// let url: string = window.location.search;
// let URLscheme: any[] = [];
// if (url.indexOf("?") !== -1) {
// let str = url.substring(1);
// let strs = str.split("&");
// for (let i = 0; i < strs.length; i++) {
// URLscheme[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
// }
// }
// if (URLscheme["host"]) {
// opener?.window.parent.postMessage({ data: "hello" }, URLscheme["host"]);
// window.close();
// }
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,9 +7,13 @@
<link href="./src/assets/ZenMaruGothic-Regular.ttf" rel="stylesheet">
<!-- <link href="https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap" rel="stylesheet"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BJ_ServerState</title>
<script type="module" crossorigin src="./assets/index.12a12ee9.js"></script>
<link rel="stylesheet" href="./assets/index.b312efde.css">
<title>cocos-vue-demo</title>
<script src="./static/js/EventBus.js" charset="utf-8"></script>
<script src="./static/cocos-build/web-mobile/src/settings.js"></script>
<script src="./static/cocos-build/web-mobile/cocos2d-js.js"></script>
<!-- <script src="./static/cocos-build/web-mobile/main.js"></script> -->
<script type="module" crossorigin src="./assets/index.a0e31fb5.js"></script>
<link rel="stylesheet" href="./assets/index.2f5031fd.css">
</head>
<body>

View File

@ -5,17 +5,20 @@ import 'vue-loading-overlay/dist/vue-loading.css';
import GameCanvas from './components/GameCanvas.vue';
import Popup from './components/Popup.vue';
const visible = ref(false)
const PopupVisible = ref(false)
const self = {
PopupVisible: PopupVisible
};
window["eventBus"].on('alert', (msg: string) => {
visible.value = true;
window["eventBus"].on('Alert', (msg: string) => {
PopupVisible.value = true;
})
</script>
<template>
<GameCanvas />
<el-dialog v-model="visible" :show-close="false">
<Popup />
<el-dialog v-model="PopupVisible" :show-close="false">
<Popup :APP="self" />
</el-dialog>
</template>

View File

@ -2,10 +2,17 @@
import { ref } from 'vue';
import 'vue-loading-overlay/dist/vue-loading.css';
const props = defineProps<{ APP: any }>()
const input = ref('')
function Send(content: string) {
window["eventBus"].emit("SendContent", content);
props.APP.PopupVisible.value = false;
}
</script>
<template>
<el-input v-model="input" placeholder="Please input A" />
<el-input v-model="input" placeholder="Please input B" />
<el-input v-model="input" placeholder="Please input Label" />
<el-button type="primary" @click.native="() => { Send(input) }" size="large" round>確定
</el-button>
</template>

View File

@ -1,98 +1,89 @@
window.__require = function e(t, n, r) {
function s(o, u) {
if (!n[o]) {
if (!t[o]) {
var b = o.split("/");
b = b[b.length - 1];
if (!t[b]) {
var a = "function" == typeof __require && __require;
if (!u && a) return a(b, !0);
if (i) return i(b, !0);
throw new Error("Cannot find module '" + o + "'");
}
o = b;
}
var f = n[o] = {
exports: {}
};
t[o][0].call(f.exports, function (e) {
var n = t[o][1][e];
return s(n || e);
}, f, f.exports, e, t, n, r);
}
return n[o].exports;
}
var i = "function" == typeof __require && __require;
for (var o = 0; o < r.length; o++) s(r[o]);
return s;
function s(o, u) {
if (!n[o]) {
if (!t[o]) {
var b = o.split("/");
b = b[b.length - 1];
if (!t[b]) {
var a = "function" == typeof __require && __require;
if (!u && a) return a(b, !0);
if (i) return i(b, !0);
throw new Error("Cannot find module '" + o + "'");
}
o = b;
}
var f = n[o] = {
exports: {}
};
t[o][0].call(f.exports, function(e) {
var n = t[o][1][e];
return s(n || e);
}, f, f.exports, e, t, n, r);
}
return n[o].exports;
}
var i = "function" == typeof __require && __require;
for (var o = 0; o < r.length; o++) s(r[o]);
return s;
}({
HelloWorld: [function (require, module, exports) {
"use strict";
cc._RF.push(module, "fdc7afxuBxOA7RfBuV+NSmm", "HelloWorld");
"use strict";
var __extends = this && this.__extends || function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf || {
__proto__: []
} instanceof Array && function (d, b) {
d.__proto__ = b;
} || function (d, b) {
for (var p in b) Object.prototype.hasOwnProperty.call(b, p) && (d[p] = b[p]);
};
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() {
this.constructor = d;
}
d.prototype = null === b ? Object.create(b) : (__.prototype = b.prototype, new __());
};
}();
var __decorate = this && this.__decorate || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", {
value: true
});
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var HelloWorld = function (_super) {
__extends(HelloWorld, _super);
function HelloWorld() {
var _this = null !== _super && _super.apply(this, arguments) || this;
_this.Label = null;
_this.Text = "hello";
_this.Btn = null;
return _this;
}
HelloWorld.prototype.onClickBtn = function () {
var url = window.location.search;
var URLscheme = [];
if (-1 !== url.indexOf("?")) {
var str = url.substring(1);
var strs = str.split("&");
for (var i = 0; i < strs.length; i++) URLscheme[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
// if (URLscheme["host"]) {
if (window.location.host) {
// null === opener || void 0 === opener ? void 0 : opener.window.parent.postMessage({
// window.frames.postMessage({
// data: "hello"
// }, window.location.host);
// window.close();
window.eventBus.emit("alert", "hello");
return;
}
};
__decorate([property(cc.Label)], HelloWorld.prototype, "Label", void 0);
__decorate([property], HelloWorld.prototype, "Text", void 0);
__decorate([property(cc.Button)], HelloWorld.prototype, "Btn", void 0);
HelloWorld = __decorate([ccclass], HelloWorld);
return HelloWorld;
}(cc.Component);
exports.default = HelloWorld;
cc._RF.pop();
}, {}]
}, {}, ["HelloWorld"]);
HelloWorld: [ function(require, module, exports) {
"use strict";
cc._RF.push(module, "fdc7afxuBxOA7RfBuV+NSmm", "HelloWorld");
"use strict";
var __extends = this && this.__extends || function() {
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf || {
__proto__: []
} instanceof Array && function(d, b) {
d.__proto__ = b;
} || function(d, b) {
for (var p in b) Object.prototype.hasOwnProperty.call(b, p) && (d[p] = b[p]);
};
return extendStatics(d, b);
};
return function(d, b) {
extendStatics(d, b);
function __() {
this.constructor = d;
}
d.prototype = null === b ? Object.create(b) : (__.prototype = b.prototype, new __());
};
}();
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", {
value: true
});
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var HelloWorld = function(_super) {
__extends(HelloWorld, _super);
function HelloWorld() {
var _this = null !== _super && _super.apply(this, arguments) || this;
_this.Label = null;
_this.Text = "hello";
_this.Btn = null;
return _this;
}
HelloWorld.prototype.onLoad = function() {
var self = this;
this.Label.string = this.Text;
window["eventBus"].on("SendContent", function(content) {
self.Label.string = content;
});
};
HelloWorld.prototype.onClickBtn = function() {
window["eventBus"].emit("Alert", "hello");
};
__decorate([ property(cc.Label) ], HelloWorld.prototype, "Label", void 0);
__decorate([ property ], HelloWorld.prototype, "Text", void 0);
__decorate([ property(cc.Button) ], HelloWorld.prototype, "Btn", void 0);
HelloWorld = __decorate([ ccclass ], HelloWorld);
return HelloWorld;
}(cc.Component);
exports.default = HelloWorld;
cc._RF.pop();
}, {} ]
}, {}, [ "HelloWorld" ]);