修改菜单和qr的显示方式

This commit is contained in:
cebgcontract 2022-06-21 16:55:44 +08:00
parent d6ea4330a1
commit 8d7930fd08
11 changed files with 1556 additions and 1351 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
{
"ver": "1.0.1",
"uuid": "0bfa7bbc-42ab-4204-9fe7-3cd9b56eb045",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"subMetas": {}
}

View File

@ -0,0 +1,415 @@
[
{
"__type__": "cc.Prefab",
"_name": "",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false
},
{
"__type__": "cc.Node",
"_name": "QrNode",
"_objFlags": 0,
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 8
}
],
"_active": true,
"_level": 1,
"_components": [
{
"__id__": 11
}
],
"_prefab": {
"__id__": 12
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1024,
"height": 512
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_position": {
"__type__": "cc.Vec3",
"x": 512,
"y": 256,
"z": 0
},
"_scale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_rotationX": 0,
"_rotationY": 0,
"_quat": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_skewX": 0,
"_skewY": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "New Sprite(Splash)",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_level": 4,
"_components": [
{
"__id__": 3
},
{
"__id__": 4
},
{
"__id__": 5
}
],
"_prefab": {
"__id__": 7
},
"_opacity": 97,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1024,
"height": 512
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_position": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_scale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_rotationX": 0,
"_rotationY": 0,
"_quat": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_skewX": 0,
"_skewY": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91"
},
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_state": 0,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"alignMode": 1,
"_target": null,
"_alignFlags": 45,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_verticalCenter": 0,
"_horizontalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 100,
"_originalHeight": 100,
"_id": ""
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"duration": 0.1,
"zoomScale": 1.2,
"clickEvents": [
{
"__id__": 6
}
],
"_N$interactable": true,
"_N$enableAutoGrayEffect": false,
"_N$transition": 0,
"transition": 0,
"_N$normalColor": {
"__type__": "cc.Color",
"r": 214,
"g": 214,
"b": 214,
"a": 255
},
"_N$pressedColor": {
"__type__": "cc.Color",
"r": 211,
"g": 211,
"b": 211,
"a": 255
},
"pressedColor": {
"__type__": "cc.Color",
"r": 211,
"g": 211,
"b": 211,
"a": 255
},
"_N$hoverColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"hoverColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_N$disabledColor": {
"__type__": "cc.Color",
"r": 124,
"g": 124,
"b": 124,
"a": 255
},
"_N$normalSprite": null,
"_N$pressedSprite": null,
"pressedSprite": null,
"_N$hoverSprite": null,
"hoverSprite": null,
"_N$disabledSprite": null,
"_N$target": null,
"_id": ""
},
{
"__type__": "cc.ClickEvent",
"target": {
"__id__": 1
},
"component": "",
"_componentId": "287f2RBg4FGULo0MNLU+fmM",
"handler": "hideMe",
"customEventData": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__uuid__": "0f14a371-be16-44a1-adcf-319d54c7ba3d"
},
"fileId": "892rmrF1lJTpW9wI5hBgto",
"sync": false
},
{
"__type__": "cc.Node",
"_name": "qrImgNode",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_level": 4,
"_components": [
{
"__id__": 9
}
],
"_prefab": {
"__id__": 10
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 300,
"height": 300
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_position": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_scale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_rotationX": 0,
"_rotationY": 0,
"_quat": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_skewX": 0,
"_skewY": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "360a3jV8pdLLaS9OFBYhZwv",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 8
},
"_enabled": true,
"lightColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"deepColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__uuid__": "0f14a371-be16-44a1-adcf-319d54c7ba3d"
},
"fileId": "7fdBt6xvJCbZha0tOFrOnZ",
"sync": false
},
{
"__type__": "287f2RBg4FGULo0MNLU+fmM",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"qrComp": {
"__id__": 9
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__uuid__": "0f14a371-be16-44a1-adcf-319d54c7ba3d"
},
"fileId": "60aR5zcbNMJKABPX77Q5lw",
"sync": false
}
]

View File

@ -0,0 +1,7 @@
{
"ver": "1.0.1",
"uuid": "0f14a371-be16-44a1-adcf-319d54c7ba3d",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"subMetas": {}
}

View File

@ -22,3 +22,5 @@ export const WALLET_CHAIN_CHANGE = 'wallet_chain_change'
export const WALLET_ACCOUNT_CHANGE = 'wallet_account_change'
export const WALLET_TOKEN_TYPE_CHANGE = 'wallet_token_type_change'
export const WALLET_SHOW_QR = 'wallet_show_qr'

View File

@ -0,0 +1,17 @@
import QRCodeComp from "./comp/QRCodeComp";
const {ccclass, property} = cc._decorator;
@ccclass
export default class QrNode extends cc.Component {
@property(QRCodeComp)
qrComp: QRCodeComp = null
showQr(val: string) {
this.qrComp.renderQr(val)
}
hideMe() {
this.node.active = false
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "1.0.5",
"uuid": "287f2441-8381-4650-ba34-30d2d4f9f98c",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -1,5 +1,5 @@
import { formatPrice } from "../common/chain.util";
import { WALLET_CHAIN_CHANGE } from "../common/WalletEvent";
import { WALLET_CHAIN_CHANGE, WALLET_SHOW_QR } from "../common/WalletEvent";
import { Bind } from "../decorator/AutoUpdateUI";
import JCWallet, { IChainData } from "../JCWallet";
import { renderFromTokenMinimalUnit } from "../util/number.util";
@ -18,15 +18,14 @@ export default class WalletInfo extends WalletBase {
@property(cc.Label)
balanceLabel: cc.Label = null;
@property(cc.Node)
qrNode: cc.Node = null;
@property(HashIcon)
avatar: HashIcon = null;
accountId: string = '';
balance: string = ''
@property(cc.Node)
parentNode: cc.Node = null
// LIFE-CYCLE CALLBACKS:
@ -87,13 +86,7 @@ export default class WalletInfo extends WalletBase {
const address = this.wallet.currentAccount().address
const chainId = this.wallet.currentChain.id
let qrUrl = `ethereum:${address}@${chainId}`
this.showQr(qrUrl)
}
hideQr() {
this.qrNode.active = false
}
showQr(val: string) {
this.qrNode.active = true
this.qrNode.getChildByName('qrImgNode').getComponent('QRCodeComp').showQr(val)
// this.showQr(qrUrl)
this.wallet.mainHandlers.emit(WALLET_SHOW_QR, qrUrl)
}
}

View File

@ -1,3 +1,4 @@
import { WALLET_SHOW_QR } from "../common/WalletEvent";
import JCWallet from "../JCWallet";
import ChainTab from "./ChainTab";
import ListNode from "./ListNode";
@ -18,8 +19,14 @@ export default class WalletMainPanel extends WalletBase {
})
listNode: ListNode = null
@property(cc.Node)
menuPanel: cc.Node = null
@property(cc.Prefab)
menuPreb: cc.Prefab = null
@property(cc.Prefab)
qrPreb: cc.Prefab = null
subNodeMap: Map<string, cc.Node> = new Map()
// LIFE-CYCLE CALLBACKS:
@ -27,6 +34,7 @@ export default class WalletMainPanel extends WalletBase {
start () {
super.start()
this.wallet.mainHandlers.on(WALLET_SHOW_QR, this.showQrNode.bind(this))
}
// update (dt) {}
@ -44,8 +52,27 @@ export default class WalletMainPanel extends WalletBase {
}
}
private fetchNode(tag: string, preb: cc.Prefab) {
if (!this.subNodeMap.has(tag)) {
const node = cc.instantiate(preb)
node.x = 0
node.y = 0
this.node.addChild(node)
this.subNodeMap.set(tag, node)
}
return this.subNodeMap.get(tag)
}
onMenuClick() {
this.menuPanel.active = true
const tag = 'menu-node'
const node = this.fetchNode(tag, this.menuPreb)
node.active = true
}
showQrNode(val: string) {
const tag = 'qr-node'
const node = this.fetchNode(tag, this.qrPreb)
node.getComponent('QrNode').showQr(val)
node.active = true
}
}

View File

@ -4,13 +4,9 @@ import { QR } from '../../lib/qrcode';
@ccclass
export default class QRCodeComp extends cc.Component {
@property({
type: cc.Color
})
@property(cc.Color)
lightColor: cc.Color = cc.Color.WHITE
@property({
type: cc.Color
})
@property(cc.Color)
deepColor: cc.Color = cc.Color.BLACK
preVal:string = ''
@ -24,7 +20,7 @@ export default class QRCodeComp extends cc.Component {
}
// update (dt) {}
showQr(val: string) {
renderQr(val: string) {
if (this.preVal === val) {
return
}

File diff suppressed because it is too large Load Diff