Commit 90f331fc authored by limingzhe's avatar limingzhe

fix: debug

parent a3f5ba9f
[
{
"__type__": "cc.SceneAsset",
"_name": "",
"_objFlags": 0,
"_native": "",
"scene": {
"__id__": 1
}
},
{
"__type__": "cc.Scene",
"_objFlags": 0,
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": false,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_is3DNode": true,
"_groupIndex": 0,
"groupIndex": 0,
"autoReleaseAssets": true,
"_id": "0737ce42-24f0-45c6-8e1a-8bdab4f74ba3"
},
{
"__type__": "cc.Node",
"_name": "Canvas",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
},
{
"__id__": 5
},
{
"__id__": 7
},
{
"__id__": 14
}
],
"_active": true,
"_components": [
{
"__id__": 24
},
{
"__id__": 25
},
{
"__id__": 26
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1280,
"height": 720
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
640,
360,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "a5esZu+45LA5mBpvttspPD"
},
{
"__type__": "cc.Node",
"_name": "Main Camera",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1280,
"height": 720
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
362.85545494732423,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "e1WoFrQ79G7r4ZuQE3HlNb"
},
{
"__type__": "cc.Camera",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"_cullingMask": 4294967295,
"_clearFlags": 7,
"_backgroundColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_depth": -1,
"_zoomRatio": 1,
"_targetTexture": null,
"_fov": 60,
"_orthoSize": 10,
"_nearClip": 1,
"_farClip": 4096,
"_ortho": true,
"_rect": {
"__type__": "cc.Rect",
"x": 0,
"y": 0,
"width": 1,
"height": 1
},
"_renderStages": 1,
"_alignWithScreen": true,
"_id": "81GN3uXINKVLeW4+iKSlim"
},
{
"__type__": "cc.Node",
"_name": "bg",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 6
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1280,
"height": 720
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "32MJMZ2HRGF4BOf533Avyi"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 5
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8288e3d4-4c75-4b27-8f01-f7014417f4dd"
},
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_id": "97/S6HDq9MeqgmV1Zwnhbb"
},
{
"__type__": "cc.Node",
"_name": "bottomPart",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [
{
"__id__": 8
},
{
"__id__": 11
}
],
"_active": true,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
635.132,
-356.326,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "8c7k8ep/ZFNpO263+1QHz9"
},
{
"__type__": "cc.Node",
"_name": "btn_left",
"_objFlags": 0,
"_parent": {
"__id__": 7
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 9
},
{
"__id__": 10
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 61,
"height": 67
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
-148.464,
34,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "5ad2wLQLxIN5Eg7OHecSH6"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 8
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "ce19457d-e8f3-4c38-ae3e-d4b99208ddb5"
},
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_id": "84mqOgJ3JNqZrYVTEU8CjE"
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 8
},
"_enabled": true,
"_normalMaterial": null,
"_grayMaterial": null,
"duration": 0.1,
"zoomScale": 1.2,
"clickEvents": [],
"_N$interactable": true,
"_N$enableAutoGrayEffect": false,
"_N$transition": 0,
"transition": 0,
"_N$normalColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"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": "bcYN/4EKBJhbIAfovo9Ah1"
},
{
"__type__": "cc.Node",
"_name": "btn_right",
"_objFlags": 0,
"_parent": {
"__id__": 7
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 12
},
{
"__id__": 13
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 60,
"height": 66
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
-47.164,
34,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "46i3stdzpHX6zQHTGnRsNE"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 11
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "e5a2dbaa-a677-4a32-90d7-a1b057d7fb59"
},
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_id": "42Sh8QS/BHn4WiGyPQPKPt"
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 11
},
"_enabled": true,
"_normalMaterial": null,
"_grayMaterial": null,
"duration": 0.1,
"zoomScale": 1.2,
"clickEvents": [],
"_N$interactable": true,
"_N$enableAutoGrayEffect": false,
"_N$transition": 0,
"transition": 0,
"_N$normalColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"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": "1aj32fYY1IxLesa77E70Qu"
},
{
"__type__": "cc.Node",
"_name": "res",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [
{
"__id__": 15
},
{
"__id__": 18
},
{
"__id__": 21
}
],
"_active": false,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "0aAzbH6R1E+6AmGRrkKa5O"
},
{
"__type__": "cc.Node",
"_name": "font",
"_objFlags": 0,
"_parent": {
"__id__": 14
},
"_children": [
{
"__id__": 16
}
],
"_active": true,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "9bLfcYeeNKrr524vzWchiM"
},
{
"__type__": "cc.Node",
"_name": "BRLNSDB",
"_objFlags": 0,
"_parent": {
"__id__": 15
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 17
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "cfMLGsq0BMhJARv+ySMAxS"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
},
"_enabled": true,
"_materials": [],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_string": "",
"_N$string": "",
"_fontSize": 40,
"_lineHeight": 40,
"_enableWrapText": true,
"_N$file": {
"__uuid__": "c551970e-b095-45f3-9f1d-25cde8b8deb1"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_batchAsBitmap": false,
"_styleFlags": 0,
"_underlineHeight": 0,
"_N$horizontalAlign": 0,
"_N$verticalAlign": 0,
"_N$fontFamily": "Arial",
"_N$overflow": 0,
"_N$cacheMode": 0,
"_id": "9bNHNPu5lC7rQYyr8ai/sY"
},
{
"__type__": "cc.Node",
"_name": "img",
"_objFlags": 0,
"_parent": {
"__id__": 14
},
"_children": [
{
"__id__": 19
}
],
"_active": true,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "53LUHHG2pEr79fyrvazXJs"
},
{
"__type__": "cc.Node",
"_name": "icon",
"_objFlags": 0,
"_parent": {
"__id__": 18
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 20
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 138,
"height": 141
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "1blU2OArJIfoC9XfupGxJG"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 19
},
"_enabled": true,
"_materials": [],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "6fbc30a8-3c49-44ae-8ba4-7f56f385b78a"
},
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_id": "03GEWUEZJGyKormWgIWCtM"
},
{
"__type__": "cc.Node",
"_name": "audio",
"_objFlags": 0,
"_parent": {
"__id__": 14
},
"_children": [
{
"__id__": 22
}
],
"_active": true,
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "d9f+b0lmZGSJJae6zrADhp"
},
{
"__type__": "cc.Node",
"_name": "btn",
"_objFlags": 0,
"_parent": {
"__id__": 21
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 23
}
],
"_prefab": null,
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": "e87DSaFCVJfb2PAUkf4/o7"
},
{
"__type__": "cc.AudioSource",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 22
},
"_enabled": true,
"_clip": {
"__uuid__": "f0680ae0-c079-45ef-abd7-9e63d90b982b"
},
"_volume": 1,
"_mute": false,
"_loop": false,
"_firstlyEnabled": true,
"playOnLoad": false,
"preload": false,
"_id": "dey05oKrBIspvsDa6pOIQz"
},
{
"__type__": "cc.Canvas",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_designResolution": {
"__type__": "cc.Size",
"width": 1280,
"height": 720
},
"_fitWidth": true,
"_fitHeight": true,
"_id": "59Cd0ovbdF4byw5sbjJDx7"
},
{
"__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": 0,
"_originalHeight": 0,
"_id": "29zXboiXFBKoIV4PQ2liTe"
},
{
"__type__": "408a6f4ZfpM8Yzyg+IOGg/V",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_id": "eaTVUpqahPfZeO9+sUI7RP"
}
]
\ No newline at end of file
import { asyncDelay, onHomeworkFinish } from "../script/util";
import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent";
const { ccclass, property } = cc._decorator;
@ccclass
export default class SceneComponent extends MyCocosSceneComponent {
addPreloadImage() {
// TODO 根据自己的配置预加载图片资源
this._imageResList.push({ url: this.data.pic_url });
this._imageResList.push({ url: this.data.pic_url_2 });
}
addPreloadAudio() {
// TODO 根据自己的配置预加载音频资源
this._audioResList.push({ url: this.data.audio_url });
}
addPreloadAnima() {
}
async onLoadEnd() {
// TODO 加载完成后的逻辑写在这里, 下面的代码仅供参考
this.initData();
this.initView();
this.initListener();
}
_cantouch = null;
initData() {
// 所有全局变量 默认都是null
this._cantouch = true;
}
initView() {
this.initBg();
this.initPic();
this.initBtn();
this.initIcon();
}
initBg() {
const bgNode = cc.find('Canvas/bg');
bgNode.scale = this._mapScaleMax;
}
pic1 = null;
pic2 = null;
initPic() {
const canvas = cc.find('Canvas');
const maxW = canvas.width * 0.7;
this.getSprNodeByUrl(this.data.pic_url, (sprNode) => {
const picNode1 = sprNode;
picNode1.scale = maxW / picNode1.width;
picNode1.baseX = picNode1.x;
canvas.addChild(picNode1);
this.pic1 = picNode1;
const labelNode = new cc.Node();
labelNode.color = cc.Color.YELLOW;
const label = labelNode.addComponent(cc.Label);
label.string = this.data.text;
label.fontSize = 60;
label.lineHeight = 60;
label.font = cc.find('Canvas/res/font/BRLNSDB').getComponent('cc.Label').font;
picNode1.addChild(labelNode);
});
this.getSprNodeByUrl(this.data.pic_url_2, (sprNode) => {
const picNode2 = sprNode;
picNode2.scale = maxW / picNode2.width;
canvas.addChild(picNode2);
picNode2.x = canvas.width;
picNode2.baseX = picNode2.x;
this.pic2 = picNode2;
const labelNode = new cc.Node();
const label = labelNode.addComponent(cc.RichText);
const size = 60
label.font = cc.find('Canvas/res/font/BRLNSDB').getComponent(cc.Label).font;
label.string = `<outline color=#751e00 width=4><size=${size}><color=#ffffff>${this.data.text}</color></size></outline>`
label.lineHeight = size;
picNode2.addChild(labelNode);
});
}
initIcon() {
const iconNode = this.getSprNode('icon');
iconNode.zIndex = 5;
iconNode.anchorX = 1;
iconNode.anchorY = 1;
iconNode.parent = cc.find('Canvas');
iconNode.x = iconNode.parent.width / 2 - 10;
iconNode.y = iconNode.parent.height / 2 - 10;
iconNode.on(cc.Node.EventType.TOUCH_START, () => {
this.playAudioByUrl(this.data.audio_url);
})
}
curPage = null;
initBtn() {
this.curPage = 0;
const bottomPart = cc.find('Canvas/bottomPart');
bottomPart.zIndex = 5; // 提高层级
bottomPart.x = bottomPart.parent.width / 2;
bottomPart.y = -bottomPart.parent.height / 2;
const leftBtnNode = bottomPart.getChildByName('btn_left');
//节点中添加了button组件 则可以添加click事件监听
leftBtnNode.on('click', () => {
if (!this._cantouch) {
return;
}
if (this.curPage == 0) {
return;
}
this.curPage = 0
this.leftMove();
this.playLocalAudio('btn');
})
const rightBtnNode = bottomPart.getChildByName('btn_right');
//节点中添加了button组件 则可以添加click事件监听
rightBtnNode.on('click', () => {
if (!this._cantouch) {
return;
}
if (this.curPage == 1) {
return;
}
this.curPage = 1
this.rightMove();
// 游戏结束时需要调用这个方法通知系统作业完成
onHomeworkFinish();
this.playLocalAudio('btn');
})
}
leftMove() {
this._cantouch = false;
const len = this.pic1.parent.width;
cc.tween(this.pic1)
.to(1, { x: this.pic1.baseX }, { easing: 'cubicInOut' })
.start();
cc.tween(this.pic2)
.to(1, { x: this.pic2.baseX }, { easing: 'cubicInOut' })
.call(() => {
this._cantouch = true;
})
.start();
}
rightMove() {
this._cantouch = false;
const len = this.pic1.parent.width;
cc.tween(this.pic1)
.to(1, { x: this.pic1.baseX - len }, { easing: 'cubicInOut' })
.start();
cc.tween(this.pic2)
.to(1, { x: this.pic2.baseX - len }, { easing: 'cubicInOut' })
.call(() => {
this._cantouch = true;
})
.start();
}
// update (dt) {},
initListener() {
}
playLocalAudio(audioName) {
const audio = cc.find(`Canvas/res/audio/${audioName}`).getComponent(cc.AudioSource);
return new Promise((resolve, reject) => {
const id = cc.audioEngine.playEffect(audio.clip, false);
cc.audioEngine.setFinishCallback(id, () => {
resolve(id);
});
})
}
}
{
"ver": "1.0.8",
"uuid": "408a67f8-65fa-4cf1-8cf2-83e20e1a0fd5",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
import { defaultData } from "../script/defaultData";
export class MyCocosSceneComponent extends cc.Component {
// 生命周期 onLoad
onLoad() {
this.initSceneData();
this.initSize();
}
_imageResList = null;
_audioResList = null;
_animaResList = null;
initSceneData() {
this._imageResList = [];
this._audioResList = [];
this._animaResList = [];
}
_designSize = null; // 设计分辨率
_frameSize = null; // 屏幕分辨率
_mapScaleMin = null; // 场景中常用缩放(取大值)
_mapScaleMax = null; // 场景中常用缩放(取小值)
_cocosScale = null; // cocos 自缩放 (较少用到)
initSize() {
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height
let design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height
let f = screen_size >= design_size
cc.Canvas.instance.fitHeight = f
cc.Canvas.instance.fitWidth = !f
const frameSize = cc.view.getFrameSize();
this._frameSize = frameSize;
this._designSize = cc.view.getDesignResolutionSize();
let sx = cc.winSize.width / frameSize.width;
let sy = cc.winSize.height / frameSize.height;
this._cocosScale = Math.min(sx, sy);
sx = frameSize.width / this._designSize.width;
sy = frameSize.height / this._designSize.height;
this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
cc.director['_scene'].width = frameSize.width;
cc.director['_scene'].height = frameSize.height;
}
data = null;
// 生命周期 start
start() {
if (window && (<any>window).courseware && (<any>window).courseware.getData) {
(<any>window).courseware.getData((data) => {
this.log('data:' + data);
this.data = data || this.getDefaultData();
this.data = JSON.parse(JSON.stringify(this.data));
this.preloadItem();
})
} else {
this.data = this.getDefaultData();
this.preloadItem();
}
}
getDefaultData() {
return defaultData;
}
preloadItem() {
this.addPreloadImage();
this.addPreloadAudio();
this.addPreloadAnima();
this.preload();
}
addPreloadImage() {
}
addPreloadAudio() {
}
addPreloadAnima() {
}
preload() {
const preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);
cc.assetManager.preloadAny(preloadArr, null, null, async (err, data) => {
if (window && window["air"]) {
// window["air"].onCourseInScreen = (next) => {
// window["air"].isCourseInScreen = true;
// this.onLoadEnd();
// next();
// };
await this.onLoadEnd();
window["air"].hideAirClassLoading();
} else {
await this.onLoadEnd();
}
cc.debug.setDisplayStats(false);
});
}
log (str) {
const node = cc.find('middleLayer');
if(node){
node.getComponent('middleLayer').log(str);
}else{
console.log(str);
}
}
async onLoadEnd() {
}
// ------------------------------------------------
getSprNode(resName) {
const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
const node = new cc.Node();
node.addComponent(cc.Sprite).spriteFrame = sf;
return node;
}
getSpriteFrimeByUrl(url, cb) {
cc.loader.load({ url }, (err, img) => {
const spriteFrame = new cc.SpriteFrame(img)
if (cb) {
cb(spriteFrame);
}
})
}
getSprNodeByUrl(url, cb) {
const node = new cc.Node();
const spr = node.addComponent(cc.Sprite);
this.getSpriteFrimeByUrl(url, (sf) => {
spr.spriteFrame = sf;
if (cb) {
cb(node);
}
})
}
playAudioByUrl(audio_url, cb = null) {
if (audio_url) {
cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
if (cb) {
cc.audioEngine.setFinishCallback(audioId, () => {
cb();
});
}
});
}else{
cb && cb();
}
}
}
\ No newline at end of file
export const defaultData = {
"pic_url": "http://staging-teach.cdn.ireadabc.com/ed94332a503c31e0908bd4c6923a2665.png",
"pic_url_2": "http://staging-teach.cdn.ireadabc.com/5fb60317ade0195d35ad8034d5370a7f.png",
"text": "This is a test label.",
"audio_url": "http://staging-teach.cdn.ireadabc.com/f47f1d7b5c160fe1c59500d180346240.mp3"
}
\ No newline at end of file
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
cc.sys.capabilities["touches"] = true;
!(function (global) {
"use strict";
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
var inModule = typeof module === "object";
var runtime = global.regeneratorRuntime;
if (runtime) {
if (inModule) {
// If regeneratorRuntime is defined globally and we're in a module,
// make the exports object identical to regeneratorRuntime.
module.exports = runtime;
}
// Don't bother evaluating the rest of this file if the runtime was
// already defined globally.
return;
}
// Define the runtime globally (as expected by generated code) as either
// module.exports (if we're in a module) or a new, empty object.
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
runtime.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() { }
function GeneratorFunction() { }
function GeneratorFunctionPrototype() { }
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
IteratorPrototype[iteratorSymbol] = function () {
return this;
};
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
GeneratorFunctionPrototype[toStringTagSymbol] =
GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function (method) {
prototype[method] = function (arg) {
return this._invoke(method, arg);
};
});
}
runtime.isGeneratorFunction = function (genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
runtime.mark = function (genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
if (!(toStringTagSymbol in genFun)) {
genFun[toStringTagSymbol] = "GeneratorFunction";
}
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
runtime.awrap = function (arg) {
return { __await: arg };
};
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return Promise.resolve(value.__await).then(function (value) {
invoke("next", value, resolve, reject);
}, function (err) {
invoke("throw", err, resolve, reject);
});
}
return Promise.resolve(value).then(function (unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration. If the Promise is rejected, however, the
// result for this iteration will be rejected with the same
// reason. Note that rejections of yielded Promises are not
// thrown back into the generator function, as is the case
// when an awaited Promise is rejected. This difference in
// behavior between yield and await is important, because it
// allows the consumer to decide what to do with the yielded
// rejection (swallow it and continue, manually .throw it back
// into the generator, abandon iteration, whatever). With
// await, by contrast, there is no opportunity to examine the
// rejection reason outside the generator function, so the
// only option is to throw it from the await expression, and
// let the generator function handle the exception.
result.value = unwrapped;
resolve(result);
}, reject);
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new Promise(function (resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
return this;
};
runtime.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
runtime.async = function (innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList)
);
return runtime.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
if (delegate.iterator.return) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;
}
}
context.method = "throw";
context.arg = new TypeError(
"The iterator does not provide a 'throw' method");
}
return ContinueSentinel;
}
var record = tryCatch(method, delegate.iterator, context.arg);
if (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (!info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
Gp[toStringTagSymbol] = "Generator";
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol] = function () {
return this;
};
Gp.toString = function () {
return "[object Generator]";
};
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (2 in locs) {
entry.finallyLoc = locs[2];
entry.afterLoc = locs[3];
}
this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal";
delete record.arg;
entry.completion = record;
}
function Context(tryLocsList) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
runtime.keys = function (object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
runtime.values = values;
function doneResult() {
return { value: undefined, done: true };
}
Context.prototype = {
constructor: Context,
reset: function (skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined;
}
}
}
},
stop: function () {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function (exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined;
}
return !!caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function (type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev &&
hasOwn.call(entry, "finallyLoc") &&
this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function (record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function (finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function (tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function (iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined;
}
return ContinueSentinel;
}
};
})(
// In sloppy mode, unbound `this` refers to the global object, fallback to
// Function constructor if we're in global strict mode. That is sadly a form
// of indirect eval which violates Content Security Policy.
(function () { return this })() || Function("return this")()
);
{
"ver": "1.0.8",
"uuid": "ade7af40-d56d-4087-bbc6-2888fef55353",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "8ba21262-178f-4fa5-afc9-2c1dd50ba3ab",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "c35bb2f6-f24a-4850-ae44-643f2fdc7541",
"isBundle": false,
"uuid": "e976091a-1c92-4be8-bdef-e61b8d23d13d",
"isBundle": true,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {
"ios": false,
"android": false
"ios": true,
"android": true
},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "cb9fa4ea-66ca-45af-ad31-e445c7b0ef32",
"uuid": "75aa2c1b-1b9f-420f-a059-a50a0857fdf6",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "1.1.2",
"uuid": "20185448-a1ca-4de2-8b37-7bf6cdfccbae",
"uuid": "4bb574ab-d8a9-4a02-8081-cd22c8b5fb23",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "2.3.5",
"uuid": "efa5fa09-a4dd-4bfc-ab7e-17c19f85408f",
"uuid": "9e04030c-e39e-475a-80f4-cc164137efe7",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 366,
"height": 336,
"width": 63,
"height": 68,
"platformSettings": {},
"subMetas": {
"1orange": {
"btn_laba": {
"ver": "1.0.4",
"uuid": "43d1e79d-6de8-4dcb-b8ce-d767df7913aa",
"rawTextureUuid": "efa5fa09-a4dd-4bfc-ab7e-17c19f85408f",
"uuid": "815ef2bc-50ff-4a59-b393-bcfd757dcada",
"rawTextureUuid": "9e04030c-e39e-475a-80f4-cc164137efe7",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 0,
"trimY": 1,
"width": 366,
"height": 335,
"rawWidth": 366,
"rawHeight": 336,
"trimX": 2,
"trimY": 3,
"width": 90,
"height": 89,
"rawWidth": 94,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "4f06ee44-b049-448d-ab7f-4eee117bfd4b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 63,
"height": 68,
"platformSettings": {},
"subMetas": {
"btn_laba2": {
"ver": "1.0.4",
"uuid": "36b87bbf-df80-4cca-8a13-2a2fa57a16c2",
"rawTextureUuid": "4f06ee44-b049-448d-ab7f-4eee117bfd4b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 2,
"trimY": 3,
"width": 90,
"height": 89,
"rawWidth": 94,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c10d57e8-617e-43a4-83c8-63afe8d89fea",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 94,
"height": 94,
"platformSettings": {},
"subMetas": {
"btn_laba3": {
"ver": "1.0.4",
"uuid": "79435f8c-39e6-4818-b5d2-b1479f380ffc",
"rawTextureUuid": "c10d57e8-617e-43a4-83c8-63afe8d89fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 2,
"trimY": 3,
"width": 90,
"height": 89,
"rawWidth": 94,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a216f49d-05fa-4463-99b2-3e7452633531",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 94,
"height": 94,
"platformSettings": {},
"subMetas": {
"btn_laba4": {
"ver": "1.0.4",
"uuid": "b6b25782-9d15-4b31-97f7-1a7a1e9cea2a",
"rawTextureUuid": "a216f49d-05fa-4463-99b2-3e7452633531",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 2,
"trimY": 3,
"width": 90,
"height": 89,
"rawWidth": 94,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "laba",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "815ef2bc-50ff-4a59-b393-bcfd757dcada"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "36b87bbf-df80-4cca-8a13-2a2fa57a16c2"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "79435f8c-39e6-4818-b5d2-b1479f380ffc"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "b6b25782-9d15-4b31-97f7-1a7a1e9cea2a"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "815ef2bc-50ff-4a59-b393-bcfd757dcada"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "e01464cd-bf75-4d4a-8243-a4604d675fec",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "0853721c-3f55-4eb2-873d-e3081cfadd4b",
"uuid": "af6afa75-6b41-4c9e-9238-bd69b56d3763",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "2.3.5",
"uuid": "3bba4b66-7462-4d83-b50c-4a1a034636ec",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 108,
"height": 108,
"platformSettings": {},
"subMetas": {
"btn_audio0": {
"ver": "1.0.4",
"uuid": "10cfed13-d995-4fcf-985e-d89ebb7d63ed",
"rawTextureUuid": "3bba4b66-7462-4d83-b50c-4a1a034636ec",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 108,
"height": 108,
"rawWidth": 108,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "746d8b0a-6f5f-4e37-b42e-64fd952c3153",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 108,
"height": 108,
"platformSettings": {},
"subMetas": {
"btn_audio02": {
"ver": "1.0.4",
"uuid": "e9307c2e-8584-49a6-a648-17f338cdb18c",
"rawTextureUuid": "746d8b0a-6f5f-4e37-b42e-64fd952c3153",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 108,
"height": 108,
"rawWidth": 108,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "42479278-4b5a-41b1-8ce6-de43727d367a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 108,
"height": 108,
"platformSettings": {},
"subMetas": {
"btn_audio03": {
"ver": "1.0.4",
"uuid": "525e2297-eb39-4b56-a322-bff411c08a38",
"rawTextureUuid": "42479278-4b5a-41b1-8ce6-de43727d367a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 108,
"height": 108,
"rawWidth": 108,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d579d260-b254-4935-ab17-a0d00e552899",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 108,
"height": 108,
"platformSettings": {},
"subMetas": {
"btn_audio1": {
"ver": "1.0.4",
"uuid": "c6ab02fd-39f3-4fd3-91fa-ee9f66b9c9ba",
"rawTextureUuid": "d579d260-b254-4935-ab17-a0d00e552899",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 108,
"height": 108,
"rawWidth": 108,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "op_audio",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "10cfed13-d995-4fcf-985e-d89ebb7d63ed"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "c6ab02fd-39f3-4fd3-91fa-ee9f66b9c9ba"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "e9307c2e-8584-49a6-a648-17f338cdb18c"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "525e2297-eb39-4b56-a322-bff411c08a38"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "10cfed13-d995-4fcf-985e-d89ebb7d63ed"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "990c93ef-ffbd-4d38-8e32-a403d2f4ff97",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "10154cf9-b9c1-41f6-a23c-d49e16c1ee57",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "80bb666d-3f4a-4578-b35b-a8f9c28c7ab4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"btn_1": {
"ver": "1.0.4",
"uuid": "6de78dbf-5e28-4528-ad2e-5dcdb206ffed",
"rawTextureUuid": "80bb666d-3f4a-4578-b35b-a8f9c28c7ab4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 137,
"height": 158,
"rawWidth": 139,
"rawHeight": 160,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "1b31a207-24c6-4150-b48d-8d389ad3e022",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 139,
"height": 160,
"platformSettings": {},
"subMetas": {
"btn_2": {
"ver": "1.0.4",
"uuid": "09e44d62-463e-499a-a0cb-c70bbc548270",
"rawTextureUuid": "1b31a207-24c6-4150-b48d-8d389ad3e022",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 133,
"height": 154,
"rawWidth": 139,
"rawHeight": 160,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "5d8930e9-0e06-410b-b424-8511297b231d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 139,
"height": 160,
"platformSettings": {},
"subMetas": {
"btn_3": {
"ver": "1.0.4",
"uuid": "ca19b675-3112-45d9-8fb9-0cabf9397dbe",
"rawTextureUuid": "5d8930e9-0e06-410b-b424-8511297b231d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 133,
"height": 154,
"rawWidth": 139,
"rawHeight": 160,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a6e02927-93cd-4a0e-9754-a00e278d59d1",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 139,
"height": 160,
"platformSettings": {},
"subMetas": {
"btn_4": {
"ver": "1.0.4",
"uuid": "b2c20c41-9835-42ce-9911-e93f7db110f5",
"rawTextureUuid": "a6e02927-93cd-4a0e-9754-a00e278d59d1",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 133,
"height": 154,
"rawWidth": 139,
"rawHeight": 160,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "ques_audio",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "6de78dbf-5e28-4528-ad2e-5dcdb206ffed"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "09e44d62-463e-499a-a0cb-c70bbc548270"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "ca19b675-3112-45d9-8fb9-0cabf9397dbe"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "b2c20c41-9835-42ce-9911-e93f7db110f5"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "6de78dbf-5e28-4528-ad2e-5dcdb206ffed"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "802d460c-c4c2-4976-bbf0-14feb3750881",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "a7bae982-984d-487c-b12a-d53623796005",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "audio_big",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "2cf48235-4bb9-4f47-a8c8-6663d701c6b2"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "c76470d7-67c0-4ca4-a974-0bc6564ae008"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "23e2d8c1-bfb0-4bf5-99b5-e78e78d72ef9"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "31fb3244-c2ec-4baa-8045-86a4bec475e6"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "2cf48235-4bb9-4f47-a8c8-6663d701c6b2"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "0dab7b62-6bff-451d-bce3-55f0509129f9",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "18d07592-51a9-421e-8972-0f67b68d29e1",
"uuid": "6a12d042-eed7-41a4-86ba-87ff5a0dd237",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 144,
"height": 144,
"width": 162,
"height": 167,
"platformSettings": {},
"subMetas": {
"icon": {
"btn_tigan": {
"ver": "1.0.4",
"uuid": "6fbc30a8-3c49-44ae-8ba4-7f56f385b78a",
"rawTextureUuid": "18d07592-51a9-421e-8972-0f67b68d29e1",
"uuid": "2cf48235-4bb9-4f47-a8c8-6663d701c6b2",
"rawTextureUuid": "6a12d042-eed7-41a4-86ba-87ff5a0dd237",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 3,
"trimX": 2,
"trimY": 2,
"width": 138,
"height": 141,
"rawWidth": 144,
"rawHeight": 144,
"width": 116,
"height": 117,
"rawWidth": 120,
"rawHeight": 120,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "5d4f75b6-0d07-43ad-adcb-1604ba17cdb9",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 120,
"height": 120,
"platformSettings": {},
"subMetas": {
"btn_tigan1": {
"ver": "1.0.4",
"uuid": "c76470d7-67c0-4ca4-a974-0bc6564ae008",
"rawTextureUuid": "5d4f75b6-0d07-43ad-adcb-1604ba17cdb9",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 2,
"trimY": 2,
"width": 116,
"height": 117,
"rawWidth": 120,
"rawHeight": 120,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2c3e4e00-0858-40ba-acc3-1a4b55853427",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 120,
"height": 120,
"platformSettings": {},
"subMetas": {
"btn_tigan2": {
"ver": "1.0.4",
"uuid": "23e2d8c1-bfb0-4bf5-99b5-e78e78d72ef9",
"rawTextureUuid": "2c3e4e00-0858-40ba-acc3-1a4b55853427",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 2,
"trimY": 2,
"width": 116,
"height": 117,
"rawWidth": 120,
"rawHeight": 120,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "04ccb299-13ea-4116-bcbd-04b63ef795f4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 120,
"height": 120,
"platformSettings": {},
"subMetas": {
"btn_tigan3": {
"ver": "1.0.4",
"uuid": "31fb3244-c2ec-4baa-8045-86a4bec475e6",
"rawTextureUuid": "04ccb299-13ea-4116-bcbd-04b63ef795f4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 3,
"trimY": 3,
"width": 114,
"height": 114,
"rawWidth": 120,
"rawHeight": 120,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "892ff52a-178d-4a9e-874c-b17a22eae615",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "0af7f03b-039d-4ab2-b9a0-f4bd44320859",
"downloadMode": 0,
"duration": 1.776327,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "f0680ae0-c079-45ef-abd7-9e63d90b982b",
"uuid": "edc9bb14-e27c-4fd3-a87d-d4ea7a01f3b8",
"downloadMode": 0,
"duration": 0.130612,
"subMetas": {}
......
{
"ver": "2.0.1",
"uuid": "b5acb246-88ad-491b-acf4-3ad84f0bc84b",
"downloadMode": 0,
"duration": 4.04898,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "ae679fe2-69b2-45fd-a5f9-1c51f38cf077",
"downloadMode": 0,
"duration": 2.220408,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "4fa481d7-28d6-461c-919b-2d3c6a521dce",
"downloadMode": 0,
"duration": 0.173333,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "a262fe60-ad0a-4177-8075-70541510bdfd",
"downloadMode": 0,
"duration": 2.115917,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "58f5e868-6053-4ff9-a177-146b47bbf6ba",
"downloadMode": 0,
"duration": 0.264,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "e8bd16b0-3804-45a9-a8ca-f52c02224f55",
"uuid": "f9ff87df-13c3-4529-838a-93336988cede",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"ver": "1.2.9",
"uuid": "0737ce42-24f0-45c6-8e1a-8bdab4f74ba3",
"uuid": "5e0a03aa-9b9e-4076-b508-7dbf209bb115",
"asyncLoadAssets": false,
"autoReleaseAssets": true,
"subMetas": {}
......
{
"ver": "1.1.2",
"uuid": "b0c008bc-cf92-463b-8360-0984e13c2e4d",
"uuid": "0bdf31a9-a3f4-41ec-aa7c-f93ebd2f6505",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
// Learn cc.Class:
// - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
// import { getSprNode } from "./util";
import { getSprNode, playAudioByUrl, showBtnAnima, getScaleRateBy2Node, localPosTolocalPos, randomSortByArr, loadDragonBones, playAudio, showTrebleFirework, getSprNodeByUrl, setSprNodeMaxLen, delayCall, asyncDelay, RandomInt, exchangeNodePos, onHomeworkFinish} from "./jj_xuanze_util";
cc.Class({
extends: cc.Component,
properties: {
baseWidth: {
default: 1280,
type: cc.Integer
},
baseHeight: {
default: 720,
type: cc.Integer
}
},
onLoad() {
cc.debug.setDisplayStats(false);
this.initSceneData();
this.initSize();
},
initSceneData() {
this._imageResList = [];
this._audioResList = [];
this._animaResList = [];
},
_designSize: null,
_frameSize: null,
_mapScaleMin: null,
_mapScaleMax: null,
_cocosScale: null,
canvas: null,
initSize() {
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height
let design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height
let f = screen_size >= design_size
cc.Canvas.instance.fitHeight = f
cc.Canvas.instance.fitWidth = !f
const frameSize = cc.view.getFrameSize();
this._frameSize = frameSize;
this._designSize = cc.view.getDesignResolutionSize();
let sx = cc.winSize.width / frameSize.width;
let sy = cc.winSize.height / frameSize.height;
this._cocosScale = Math.min(sx, sy);
sx = frameSize.width / this._designSize.width;
sy = frameSize.height / this._designSize.height;
this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
this.canvas = cc.find('Canvas');
// cc.log('cc.Canvas: ', cc.Canvas);
},
start() {
let getData = this.getData.bind(this);
if (window && window.courseware) {
getData = window.courseware.getData;
}
getData((data) => {
console.log('data:', data);
this.data = data || this.getDefaultData();
this.preloadItem()
})
},
_imageResList: null,
_audioResList: null,
_animaResList: null,
preloadItem() {
this.addPreloadImage();
this.addPreloadAudio();
this.addPreloadAnima();
this.preload();
},
getData(func) {
if (window && window.courseware) {
window.courseware.getData(func, 'dfzx_cocos_dqq');
return;
}
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
middleLayerComponent.getData(func);
return;
}
func(this.getDefaultData());
},
getDefaultData() {
const dataJson = '{"groupArr":[{"questionArr":[{"questionType":"pic","answerType":"text","answerArr":[{"text":"11111","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/fbe2f23b9eb191a9330f99800e0d54d5.mp3"},{"text":"22222","pic_url":"","answerRight":"1"},{"text":"33 33333 ","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/cf5077b8cbcaa1dc664df569d4af6043.mp3"},{"text":"444444","pic_url":"","answerRight":"0"}],"pic_url":"http://staging-teach.cdn.ireadabc.com/9d114554c4760ff35f1ff5479504a531.jpg","audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"}]},{"questionArr":[{"questionType":"text","answerType":"pic","answerArr":[{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/fe229e6b32f385fb8fe5eb9ec5843c66.jpg","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/b39dfb2221c22175d3e8ac972923a82b.mp3"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/9c5fa50efd7a004f24ea7fcbcf81080e.jpg","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/4293d4b1deb0389036434a1101a35178.mp3"}],"text":"a a aaaaaa aa a aaaa a a aaaaaaa aaaaa aaa aaaaaa.","audio_url":"http://staging-teach.cdn.ireadabc.com/0ee754beb094936dcbbc64ad6ee5c71c.mp3"},{"questionType":"video","answerType":"audio","answerArr":[{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/81c827cd941d1c5e4557569aa8153be7.mp3"},{"text":"","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/3501f776900fe1e1a3b5f6302e156dd6.mp3"}],"video_url":"http://staging-teach.cdn.ireadabc.com/f309f8dd44d59c65e44f375f818871e1.mp4"}]},{"questionArr":[{"questionType":"audio","answerType":"text","answerArr":[{"text":"2222","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/263d9cbaef7fbf251f9e3703130fb763.mp3"},{"text":"33333","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/4edd6cd36d36dd5a16348db81044bda7.mp3"},{"text":"4444","pic_url":"","answerRight":"0"},{"text":"2324 234","pic_url":"","answerRight":"1"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/e02d24c775a3f77c6967869435b11f7c.mp3"},{"questionType":"audio","answerType":"pic","answerArr":[{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/9d114554c4760ff35f1ff5479504a531.jpg","answerRight":"1"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/bf26f92e4f0557ad70ac27006855dae9.jpg","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/be8ec5cee7a3074440478b00a4a84f5e.png","answerRight":"0"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/bd82aae5df96886a246106562015e496.png","answerRight":"0"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/5de85e459a5e5df4823896d38e1066b9.mp3"},{"questionType":"audio","answerType":"audio","answerArr":[{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/28a42e3e77e023c8118624bb8351e7b2.mp3"},{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/4edd6cd36d36dd5a16348db81044bda7.mp3"},{"text":"","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/263d9cbaef7fbf251f9e3703130fb763.mp3"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"}]}]}';
const data1 = JSON.parse(dataJson);
return data1;
const data = {
bgItem: {
rect: {
height: 380,
width: 675.56,
x: 160.72,
y: 0
},
// url: "http://staging-teach.cdn.ireadabc.com/b31c5881ea5f607c1d3540029a7d29c7.png"
url: "http://staging-teach.cdn.ireadabc.com/756b0a8de4cb84ed70e70d60f87a5901.jpg"
},
hotZoneItemArr: [
{
id: 1595919608244,
imgScale: 1,
index: 0,
itemType: "rect",
mapScale: 0.903125,
rect: {
height: 120.84,
width: 115.99,
x: 378.68,
y: 191.3
},
skeJsonData: {
name: "finish1_ske.json",
url: "http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json"
},
texJsonData: {
name: "finish1_tex.json",
url: "http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json"
},
texPngData: {
name: "finish1_tex.png",
url: "http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png"
}
}
],
picArr: [
{
audio_url: "http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3",
pic_url: "http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png",
text: "1111",
}
]
}
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
return data;
},
preload() {
const preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);
cc.assetManager.loadAny(preloadArr, null, null, (err, data) => {
// console.log(' preload data, ', data);
this.loadEnd();
if (window && window["air"]) {
window["air"].hideAirClassLoading();
}
});
},
addPreloadImage() {
if (this.data.pic_url) {
this._imageResList.push({ url: this.data.pic_url });
}
if (this.data.bgItem) {
this._imageResList.push({ url: this.data.bgItem.url });
}
if (!this.data.hotZoneItemArr) {
return;
}
this.data.hotZoneItemArr.forEach((item) => {
if (item.pic_url) {
this._imageResList.push({ url: item.pic_url });
}
})
},
addPreloadAudio() {
if (this.data.questionArr) {
const arr = this.data.questionArr;
for (let i=0 ;i<arr.length; i++) {
this._audioResList.push({url: arr[i].audio_url || ''});
this._audioResList.push({url: arr[i].video_url || ''});
}
}
},
addPreloadAnima() {
if (!this.data.hotZoneItemArr) {
return;
}
this.data.hotZoneItemArr.forEach((item) => {
if (item.skeJsonData) {
this._animaResList.push({ url: item.skeJsonData.url || '' });
this._animaResList.push({ url: item.texJsonData.url || ''});
this._animaResList.push({ url: item.texPngData.url || ''});
}
})
},
loadEnd() {
this.initData();
this.initView();
// this.initMusic();
},
initMusic() {
cc.assetManager.loadRemote(this.data.bg_audio_url, (err, clip) => {
cc.audioEngine.setMusicVolume(0.3);
const audioID = cc.audioEngine.playMusic(clip, true);
});
},
curGroupIndex: null,
curQuestionIndex: null,
curQuestionData: null,
initData() {
this.curGroupIndex = 0;
this.curQuestionIndex = 0;
this.setCurGroupAndQuestion()
this.quesPanelW = 670;
this.quesPanelH = 382;
this.quesPanelOffX = -3;
this.quesPanelOffY = 8.2;
console.log('this.curQuestionData', this.curQuestionData)
this.initAudioEffect();
},
curGroup: null,
setCurGroupAndQuestion() {
this.curGroup = this.data.groupArr[this.curGroupIndex];
if (!this.curGroup) {
this.gameEnd();
} else {
this.curQuestionIndex = 0;
this.setCurQuestionData();
}
},
setCurQuestionData() {
this.curQuestionData = this.curGroup.questionArr[this.curQuestionIndex];
if (!this.curQuestionData) {
this.hideVideo();
this.showBigStar();
}
},
hideVideo() {
this.videoNode.active = false;
this.videoNode.player.pause();
this.videoNode.pauseBtn.active = false;
this.videoNode.playBtn.active = true;
},
rightClip: null,
wrongClip: null,
bigStarClip: null,
btnClip: null,
finishClip: null,
selectClip: null,
starCountClip: null,
initAudioEffect() {
this.rightClip = cc.find('Canvas/res/audio/right').getComponent(cc.AudioSource).clip;
this.wrongClip = cc.find('Canvas/res/audio/wrong').getComponent(cc.AudioSource).clip;
this.bigStarClip = cc.find('Canvas/res/audio/big_star').getComponent(cc.AudioSource).clip;
this.btnClip = cc.find('Canvas/res/audio/btn').getComponent(cc.AudioSource).clip;
this.finishClip = cc.find('Canvas/res/audio/finish').getComponent(cc.AudioSource).clip;
this.selectClip = cc.find('Canvas/res/audio/select').getComponent(cc.AudioSource).clip;
this.starCountClip = cc.find('Canvas/res/audio/star_count').getComponent(cc.AudioSource).clip;
},
initView() {
this.initQuestion();
this.initOption();
this.initBtn();
this.initIcon();
this.initMask();
this.setCurQuestion();
this.setCurOption();
this.initStar();
},
bigStarArr: null,
initStar() {
const gArr = this.data.groupArr;
if (gArr.length <= 1) {
return;
}
this.cleanStar();
this.bigStarArr = [];
let baseX = this.canvas.width / 2 - 80 * this._mapScaleMin;
let baseY = this.canvas.height / 2 - 80 * this._mapScaleMin;
let disH = 80 * this._mapScaleMin;
let disScale = 1;
if (gArr.length > 5) {
disH = (400 / gArr.length) * this._mapScaleMin;
disScale = 5 / gArr.length;
}
for (let i = 0; i < gArr.length; i++) {
const starBg = getSprNode('star_bg');
this.canvas.addChild(starBg, 10);
starBg.x = baseX;
starBg.y = baseY - i * disH;
starBg.scale = disScale;
const starTop = getSprNode('star');
starBg.addChild(starTop);
starTop.active = false;
starBg.star = starTop;
const starBig = getSprNode('icon_bigstar');
starTop.addChild(starBig);
starBig.angle = -90;
starBg.starBig = starBig;
this.bigStarArr.push(starBg);
}
console.log("bigStarArr: ", this.bigStarArr);
},
cleanStar() {
if (this.bigStarArr && this.bigStarArr.length > 0) {
for (let i=0; i<this.bigStarArr.length; i++) {
this.bigStarArr[i].removeFromParent();
}
}
},
showBigStar() {
if (!this.bigStarArr || this.bigStarArr.length <= 0) {
this.checkGameEnd();
return;
}
const bigStarBg = this.bigStarArr[this.curGroupIndex];
const starBig = bigStarBg.starBig;
starBig.scale = 1;
const star = bigStarBg.star;
star.active = true;
star.scaleX = 0.7 / bigStarBg.scale;
star.scaleY = 1 / bigStarBg.scale;
star.angle = 90;
const canvas = cc.find('Canvas');
const startPos = exchangeNodePos(star.parent, canvas, cc.v2(0, -canvas.height / 2));
const middlePos = exchangeNodePos(star.parent, canvas, cc.v2(0, -canvas.height / 4));
star.x = startPos.x;
star.y = startPos.y - starBig.height;
console.log('middlePos = ' + JSON.stringify(middlePos));
const time = 1;
cc.tween(star)
.to(0.3, { y: middlePos.y + 80 }, { easing: 'quadOut' })
.to(0.1, { y: middlePos.y + 40, scaleX: 1.2 / bigStarBg.scale, scaleY: 0.8 / bigStarBg.scale }, { easing: 'quadOut' })
.to(0.1, { y: middlePos.y, scaleX: 1 / bigStarBg.scale, scaleY: 1 / bigStarBg.scale }, { easing: 'quadOut' })
.delay(0.1)
.to(0.8, { angle: -720, scale: 1 })
.start();
cc.tween(star)
.delay(0.6)
.to(0.8, { x: 0 }, { easing: 'quadIn' })
.start();
cc.tween(star)
.delay(0.6)
.to(0.8, { y: 0 }, { easing: 'quadOut' })
.start();
cc.tween(starBig)
.delay(0.6)
.to(0.8, { scale: 0 }, { easing: 'quadOut' })
.call(() => {
this.checkGameEnd();
playAudio(this.starCountClip);
})
.start();
playAudio(this.bigStarClip);
},
checkGameEnd() {
this.curGroupIndex ++;
this.setCurGroupAndQuestion();
if (!this.curQuestionData) {
// this.gameEnd();
return;
}
this.showChangeQuesAnim();
},
checkBtn: null,
initBtn() {
const checkBtn = getSprNode("btn_check");
checkBtn.scale = this._mapScaleMin;
this.canvas.addChild(checkBtn);
checkBtn.x = -500 * this._mapScaleMin;
checkBtn.y = -35 * this._mapScaleMin;
checkBtn.baseX = checkBtn.x;
checkBtn.baseY = checkBtn.y;
checkBtn.opacity = 0;
this.checkBtn = checkBtn;
checkBtn.on(cc.Node.EventType.TOUCH_START, () => {
if (checkBtn.opacity == 0) {
return;
}
showBtnAnima(checkBtn);
this.checkBtnClick();
})
},
refreshCheckBtn() {
this.checkBtn.opacity = 0;
const arr = this.curOptionArr;
for (let i=0; i<arr.length; i++) {
if (arr[i].light.opacity > 254) {
this.checkBtn.opacity = 255;
return;
}
}
},
tryagain: null,
initIcon() {
const icon = getSprNode("try_again");
icon.opacity = 0;
icon.scale = this._mapScaleMin;
this.canvas.addChild(icon);
this.tryagain = icon;
},
showTryAgain() {
const time = 0.3;
cc.tween(this.tryagain)
.to(time, {opacity: 255}, {easing: "cubicOut"})
.delay(0.3)
.to(time, {opacity: 0}, {easing: "cubicIn"})
.start();
},
initQuestion() {
this.initPicQuestion();
this.initTextQuestion();
this.initVideoQuestion();
this.initAudioQuestion();
},
quesPicBg: null,
initPicQuestion() {
const picBg = getSprNode("ques_pic_bg_2");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesPicBg = picBg;
picBg.active = false;
this.addQuesAudio(picBg)
},
quesTextBg: null,
initTextQuestion() {
const picBg = getSprNode("ques_pic_bg");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesTextBg = picBg;
const labelNode = new cc.Node();
// labelNode.parent = picBg;
const label = labelNode.addComponent(cc.RichText);
const size = 80
label.font = cc.find('Canvas/res/font/Berlin_Sans_FB').getComponent(cc.Label).font;
// label.string = `<outline color=#a83c13 width=2><size=${size}><color=#ffffff>${this.data.title || " " }</color></size></outline>`
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
label.lineHeight = size;
label.horizontalAlign = cc.macro.TextAlignment.CENTER
label.maxWidth = this.quesPanelW;
labelNode.x = this.quesPanelOffX;
labelNode.y = this.quesPanelOffY;
let shadowLabelNode = cc.instantiate(labelNode);
shadowLabelNode.color = cc.Color.BLACK;
shadowLabelNode.opacity = 70;
let shadowLabel = shadowLabelNode.getComponent(cc.RichText);
// shadowLabel.string = this.originalLabel.string;
shadowLabelNode.position = cc.v2(
labelNode.position.x, // 阴影X偏移
labelNode.position.y - 3.5 // 阴影Y偏移
);
picBg.label = label;
picBg.shadowLabel = shadowLabel;
picBg.addChild(shadowLabelNode);
picBg.addChild(labelNode);
picBg.active = false;
this.addQuesAudio(picBg)
},
quesVideoBg: null,
videoNode: null,
initVideoQuestion() {
const picBg = getSprNode("ques_pic_bg");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesVideoBg = picBg;
const videoNode = new cc.Node();
const vPlayer = videoNode.addComponent(cc.VideoPlayer);
picBg.addChild(videoNode);
videoNode.width = this.quesPanelW;
videoNode.height = this.quesPanelH * 0.99;
videoNode.x = this.quesPanelOffX;
videoNode.y = this.quesPanelOffY;
this.videoNode = videoNode;
picBg.video = vPlayer;
const btnNode = new cc.Node();
picBg.addChild(btnNode);
btnNode.x = picBg.width / 2 + 35;
const playBtn = getSprNode("video_play");
btnNode.addChild(playBtn);
const pauseBtn = getSprNode("video_pause");
btnNode.addChild(pauseBtn);
pauseBtn.active = false;
videoNode.player = vPlayer;
videoNode.playBtn = playBtn;
videoNode.pauseBtn = pauseBtn;
playBtn.on(cc.Node.EventType.TOUCH_START, () => {
vPlayer.play();
playBtn.active = false;
pauseBtn.active = true;
})
pauseBtn.on(cc.Node.EventType.TOUCH_START, () => {
vPlayer.pause();
pauseBtn.active = false;
playBtn.active = true;
})
videoNode.on('completed', () => {
pauseBtn.active = false;
playBtn.active = true;
})
picBg.active = false;
},
quesAudioBg: null,
initAudioQuestion() {
const audioNode = new cc.Node();
audioNode.active = false;
this.canvas.addChild(audioNode);
audioNode.x = 440 * this._mapScaleMin;
audioNode.y = -60 * this._mapScaleMin;
this.quesAudioBg = audioNode;
const audioAnimNode = cc.instantiate(cc.find("Canvas/res/anim/audio_big"));
audioNode.addChild(audioAnimNode);
const iconTop = getSprNode('audio_big')
audioNode.addChild(iconTop);
iconTop.opacity = 255;
iconTop.addComponent(cc.BlockInputEvents);
iconTop.on(cc.Node.EventType.TOUCH_START, () => {
if (iconTop.opacity == 0) {
return;
}
if (!audioNode.audioClip) {
return;
}
const anim = audioAnimNode.getComponent(cc.Animation);
anim.play('audio_big');
iconTop.opacity = 0;
audioAnimNode.opacity = 255;
if (audioNode.audioClip) {
playAudio(audioNode.audioClip, () => {
iconTop.opacity = 255;
audioAnimNode.opacity = 0;
anim.stop();
});
}
})
},
addQuesAudio(bg) {
const audioNode = new cc.Node();
bg.addChild(audioNode);
audioNode.x = bg.width / 2 + 48;
const audioAnimNode = cc.instantiate(cc.find("Canvas/res/anim/ques_audio"));
audioNode.addChild(audioAnimNode);
const iconTop = getSprNode('ques_audio')
audioNode.addChild(iconTop);
iconTop.opacity = 255;
iconTop.addComponent(cc.BlockInputEvents);
iconTop.on(cc.Node.EventType.TOUCH_START, () => {
if (iconTop.opacity == 0) {
return;
}
const anim = audioAnimNode.getComponent(cc.Animation);
anim.play('ques_audio');
iconTop.opacity = 0;
audioAnimNode.opacity = 255;
if (audioNode.audioClip) {
playAudio(audioNode.audioClip, () => {
iconTop.opacity = 255;
audioAnimNode.opacity = 0;
anim.stop();
});
}
})
bg.audioNode = audioNode;
},
initOption() {
this.initPicOption();
this.initAudioOption();
this.initTextOption();
this.initPicOptionBig();
this.initAudioOptionBig();
this.initTextOptionBig();
},
optionPicBgArr: null,
initPicOption() {
// console.log('this.data: ', this.data);
this.optionPicBgArr = [];
for (let i=0; i<4; i++) {
const pic = this.getOnePicOption();
this.canvas.addChild(pic);
pic.scale = this._mapScaleMin;
pic.y = -235 * this._mapScaleMin;
this.optionPicBgArr.push(pic);
}
},
optionPicBgBigArr: null,
initPicOptionBig() {
this.optionPicBgBigArr = [];
const baseX = -380 * this._mapScaleMin;
const disW = 440 * this._mapScaleMin;
let baseY = 170 * this._mapScaleMin;
const disH = 350 * this._mapScaleMin;
let count = 0;
for (let i=0; i<4; i++) {
if (i==2) {
count = 0;
baseY -= disH;
}
const pic = this.getOnePicOption(true);
this.canvas.addChild(pic);
pic.scale = this._mapScaleMin;
pic.x = baseX + count * disW;
pic.y = baseY;
this.optionPicBgBigArr.push(pic);
count ++;
}
},
getOnePicOption(isBig = false) {
const picBgParent = new cc.Node();
let lightResName = "option_pic_bg_l";
let bgResName = "option_pic_bg";
if (isBig) {
lightResName = "op_pic_bg_big_l";
bgResName = "op_pic_bg_big";
}
const picBg = getSprNode(bgResName);
picBgParent.addChild(picBg);
picBgParent.picBg = picBg;
const light = getSprNode(lightResName);
picBgParent.addChild(light);
light.opacity = 0;
picBgParent.light = light;
picBgParent.width = picBg.width;
picBgParent.height = picBg.height;
const soundNode = new cc.Node();
picBgParent.addChild(soundNode);
picBgParent.soundIcon = soundNode;
const soundIconAnim = cc.instantiate(cc.find("Canvas/res/anim/laba"))
soundNode.addChild(soundIconAnim);
soundIconAnim.opacity = 0;
const soundIconTop = getSprNode('btn_laba')
soundNode.addChild(soundIconTop);
soundIconTop.opacity = 255;
soundNode.x = picBgParent.width / 2 - soundIconTop.width / 2;
soundNode.y = picBgParent.height / 2 //- soundIconTop.height / 2;
soundNode.active = false;
picBgParent.active = false;
picBgParent.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
} else {
light.opacity = 0;
}
this.refreshCheckBtn();
})
soundIconTop.addComponent(cc.BlockInputEvents);
soundIconTop.on(cc.Node.EventType.TOUCH_START, () => {
const anim = soundIconAnim.getComponent(cc.Animation);
anim.play('laba');
soundIconTop.opacity = 0;
soundIconAnim.opacity = 255;
if (soundNode.audioClip) {
playAudio(soundNode.audioClip, () => {
soundIconTop.opacity = 255;
soundIconAnim.opacity = 0;
anim.stop();
});
}
})
return picBgParent;
},
addIconRight(bg) {
const px = bg.width / 2;
const py = -bg.height / 2 ;
const worldPos = bg.convertToWorldSpaceAR(cc.v2(px, py));
const localPos = this.canvas.convertToNodeSpaceAR(worldPos);
const iconRight = getSprNode('icon_right');
iconRight.scale = this._mapScaleMin;
this.canvas.addChild(iconRight, 1);
iconRight.x = localPos.x;
iconRight.y = localPos.y + 50 * this._mapScaleMin;
bg.iconRight = iconRight;
this.showOneFirework(cc.v2(0, -bg.height / 3), bg, cc.find('paperBase').children, 200, 300, 20, 1);
},
optionAudioBgArr: null,
initAudioOption() {
this.optionAudioBgArr = [];
for (let i=0; i<4; i++) {
const audio = this.getOneAudioOption();
this.canvas.addChild(audio);
audio.scale = this._mapScaleMin;
audio.y = -235 * this._mapScaleMin;
this.optionAudioBgArr.push(audio);
}
},
optionAudioBgBigArr: null,
initAudioOptionBig() {
this.optionAudioBgBigArr = [];
const baseX = -380 * this._mapScaleMin;
const disW = 440 * this._mapScaleMin;
let baseY = 170 * this._mapScaleMin;
const disH = 350 * this._mapScaleMin;
let count = 0;
for (let i=0; i<4; i++) {
if (i==2) {
count = 0;
baseY -= disH;
}
const audio = this.getOneAudioOption(true);
this.canvas.addChild(audio);
audio.scale = this._mapScaleMin;
audio.x = baseX + count * disW;
audio.y = baseY;
this.optionAudioBgBigArr.push(audio);
count ++;
}
},
optionTextBgArr: null,
initTextOption() {
this.optionTextBgArr = [];
for (let i=0; i<4; i++) {
const textOption = this.getOneTextOption();
this.canvas.addChild(textOption);
textOption.scale = this._mapScaleMin;
// textOption.y = -235 * this._mapScaleMin;
this.optionTextBgArr.push(textOption);
}
},
optionTextBgBigArr: null,
initTextOptionBig() {
const baseX = -180 * this._mapScaleMin;
const disW = 100 * this._mapScaleMin;
let baseY = 220 * this._mapScaleMin;
const disH = 150 * this._mapScaleMin;
this.optionTextBgBigArr = [];
for (let i=0; i<4; i++) {
const textOption = this.getOneTextOption(true);
this.canvas.addChild(textOption);
textOption.scale = this._mapScaleMin;
textOption.x = baseX;
textOption.y = baseY - i * disH;
this.optionTextBgBigArr.push(textOption);
}
},
getOneAudioOption(isBig=false) {
let lightResName = "option_pic_bg_l";
let bgResName = "option_pic_bg";
if (isBig) {
lightResName = "op_pic_bg_big_l";
bgResName = "op_pic_bg_big";
}
const audioBgNode = new cc.Node();
const picBg = getSprNode(bgResName);
audioBgNode.addChild(picBg);
audioBgNode.picBg = picBg;
const light = getSprNode(lightResName);
audioBgNode.addChild(light);
light.opacity = 0;
audioBgNode.light = light;
audioBgNode.width = picBg.width;
audioBgNode.height = picBg.height;
const animNode = cc.instantiate(cc.find("Canvas/res/anim/op_audio"))
audioBgNode.addChild(animNode);
animNode.anchorX = 0.6;
const animTop = getSprNode('op_audio');
audioBgNode.addChild(animTop);
animTop.anchorX = 0.6;
const anim = animNode.getComponent(cc.Animation);
animNode.opacity = 0;
audioBgNode.anim = anim;
audioBgNode.animNode = animNode;
audioBgNode.animTop = animTop;
audioBgNode.showAnim = () => {
this.playItemAnim(audioBgNode);
cc.audioEngine.stop(audioBgNode.audioId);
}
audioBgNode.stopAnim = () => {
cc.audioEngine.stop(audioBgNode.audioId);
this.stopItemAnim(audioBgNode);
}
audioBgNode.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
audioBgNode.showAnim();
if (audioBgNode.audioClip) {
audioBgNode.audioId = playAudio(audioBgNode.audioClip, () => {
this.stopItemAnim(audioBgNode);
});
}
} else {
light.opacity = 0;
audioBgNode.stopAnim();
}
this.refreshCheckBtn();
});
audioBgNode.active = false;
return audioBgNode;
},
getOneTextOption(isBig=false) {
let lightResName = "option_text_bg_l";
let bgResName = "option_text_bg";
if (isBig) {
lightResName = "op_text_bg_big_l";
bgResName = "op_text_bg_big";
}
const textBgParent = new cc.Node();
textBgParent.active = false;
const textBg = getSprNode(bgResName);
textBgParent.addChild(textBg);
textBgParent.textBg = textBg;
const light = getSprNode(lightResName);
textBgParent.addChild(light);
light.opacity = 0;
textBgParent.light = light;
textBgParent.width = textBg.width;
textBgParent.height = textBg.height;
const labelNode = new cc.Node();
// textBgParent.addChild(labelNode, 2);
// labelNode.parent = textBgParent;
const label = labelNode.addComponent(cc.Label);
label.fontSize = 56;
label.lineHeight = 56;
if (isBig) {
label.fontSize = 64;
label.lineHeight = 64;
}
label.font = cc.find('Canvas/res/font/Berlin_Sans_FB').getComponent(cc.Label).font;
textBgParent.label = label;
let shadowLabelNode = cc.instantiate(labelNode);
shadowLabelNode.color = cc.Color.BLACK;
shadowLabelNode.opacity = 70;
let shadowLabel = shadowLabelNode.getComponent(cc.Label);
textBgParent.shadowLabel = shadowLabel;
// shadowLabel.string = this.originalLabel.string;
shadowLabelNode.position = cc.v2(
labelNode.position.x, // 阴影X偏移
labelNode.position.y - 3.5 // 阴影Y偏移
);
textBgParent.addChild(shadowLabelNode);
textBgParent.addChild(labelNode);
const color = new cc.Color();
// cc.Color.fromHEX(color, '#023659' );
cc.Color.fromHEX(color, '#ffffff' );
labelNode.color = color;
const soundNode = new cc.Node();
textBgParent.addChild(soundNode);
textBgParent.soundIcon = soundNode;
const soundIconAnim = cc.instantiate(cc.find("Canvas/res/anim/laba"))
soundNode.addChild(soundIconAnim);
soundIconAnim.opacity = 0;
const soundIconTop = getSprNode('btn_laba')
soundNode.addChild(soundIconTop);
soundIconTop.opacity = 255;
soundNode.x = textBgParent.width / 2 - 15; // - soundIconTop.width / 2;
soundNode.y = textBgParent.height / 2 - 15; //- soundIconTop.height / 2;
soundNode.active = false;
textBgParent.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
} else {
light.opacity = 0;
}
this.refreshCheckBtn();
})
soundIconTop.addComponent(cc.BlockInputEvents);
soundIconTop.on(cc.Node.EventType.TOUCH_START, () => {
const anim = soundIconAnim.getComponent(cc.Animation);
anim.play('laba');
soundIconTop.opacity = 0;
soundIconAnim.opacity = 255;
if (soundNode.audioClip) {
playAudio(soundNode.audioClip, () => {
soundIconTop.opacity = 255;
soundIconAnim.opacity = 0;
anim.stop();
});
}
})
return textBgParent;
},
playItemAnim(item) {
item.anim.play();
item.animNode.opacity = 255;
item.animTop.opacity = 0;
},
stopItemAnim(item) {
item.animNode.opacity = 0;
item.animTop.opacity = 255;
},
setCurQuestion() {
switch(this.curQuestionData.questionType) {
case "pic":
this.setQuestionPic();
break;
case "text":
this.setQuestionText();
break;
case "video":
this.setQuestionVideo();
break;
case "audio":
this.setQuestionAudio();
break;
}
this.refreshCheckBtnPos();
},
refreshCheckBtnPos() {
if (this.curQuestionData.questionType == 'audio') {
this.checkBtn.x = 440 * this._mapScaleMin;
this.checkBtn.y = -240 * this._mapScaleMin;
} else {
this.checkBtn.x = this.checkBtn.baseX;
this.checkBtn.y = this.checkBtn.baseY;
}
},
curQuesBg: null,
setQuestionPic() {
this.curQuesBg = this.quesPicBg;
this.curQuesBg.active = true;
if (this.quesPicBg.pic) {
this.quesPicBg.pic.removeFromParent();
this.quesPicBg.pic = null;
}
if (this.curQuestionData.pic_url) {
getSprNodeByUrl(this.curQuestionData.pic_url, (spr) => {
const sprNode = spr.node;
setSprNodeMaxLen(sprNode, this.quesPanelW, this.quesPanelH);
// const sx = 670 / sprNode.width;
// const sy = 380 / sprNode.height;
// sprNode.scaleX = sx;
// sprNode.scaleY = sy;
// sprNode.opacity = 100;
sprNode.x = this.quesPanelOffX;
sprNode.y = this.quesPanelOffY;
this.quesPicBg.addChild(sprNode)
this.quesPicBg.pic = sprNode;
})
}
const audioNode = this.quesPicBg.audioNode;
audioNode.active = false;
audioNode.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
audioNode.audioClip = audioClip;
});
audioNode.active = true;
}
},
setQuestionText() {
this.curQuesBg = this.quesTextBg;
this.curQuesBg.active = true;
const label = this.curQuesBg.label;
const size = 80;
label.string = `<size=${size}><color=#fff4b6>${this.curQuestionData.text + 'aaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a'}</color></size>`
const shadowLabel = this.curQuesBg.shadowLabel;
shadowLabel.string = `<size=${size}><color=#000000>${this.curQuestionData.text + 'aaa a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a'}</color></size>`
const maxH = this.quesPanelH * 0.98;
if (label.node.height > maxH) {
label.node.scale = maxH / label.node.height
} else {
label.node.scale = 1;
}
shadowLabel.node.scale = label.node.scale;
const audioNode = this.curQuesBg.audioNode;
audioNode.active = false;
audioNode.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
audioNode.audioClip = audioClip;
});
audioNode.active = true;
}
},
setQuestionVideo() {
this.curQuesBg = this.quesVideoBg;
this.curQuesBg.active = true;
this.videoNode.active = true;
if (this.curQuestionData.video_url) {
this.curQuesBg.video.remoteURL = this.curQuestionData.video_url;
}
},
setQuestionAudio() {
this.curQuesBg = this.quesAudioBg;
this.curQuesBg.active = true;
this.curQuesBg.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
this.curQuesBg.audioClip = audioClip;
});
}
},
setCurOption() {
const arr = this.curQuestionData.answerArr;
const isBig = this.curQuestionData.questionType == 'audio';
switch(this.curQuestionData.answerType) {
case "pic":
this.setOptionPic(arr, isBig);
break;
case "audio":
this.setOptionAudio(arr, isBig);
break;
case "text":
this.setOptionText(arr, isBig);
break;
}
},
curOptionArr: null,
setOptionPic(arr, isBig=false) {
let opItemArr = this.optionPicBgArr;
if (isBig) {
opItemArr = this.optionPicBgBigArr;
}
this.curOptionArr = [];
const disW = 158 * this._mapScaleMin;
const baseX = -(arr.length - 1) * disW;
for (let i=0; i<arr.length; i++) {
opItemArr[i].active = true;
if (!isBig) {
opItemArr[i].x = baseX + i * disW * 2;
}
const picBg = opItemArr[i].picBg;
picBg.removeAllChildren();
const data = arr[i];
if (data.pic_url) {
getSprNodeByUrl, getSprNodeByUrl(data.pic_url, (spr) => {
let maxW = 280;
let maxH = 190;
if (isBig) {
maxW = 366;
maxH = 248;
}
setSprNodeMaxLen(spr.node, maxW, maxH);
console.log('spr: ', spr);
picBg.addChild(spr.node);
})
}
const soundIcon = opItemArr[i].soundIcon;
soundIcon.active = false;
soundIcon.audioClip = null;
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
soundIcon.audioClip = audioClip;
opItemArr[i].audioClip = audioClip;
});
soundIcon.active = true;
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
}
},
setOptionAudio(arr, isBig=false) {
let opItemArr = this.optionAudioBgArr;
if (isBig) {
opItemArr = this.optionAudioBgBigArr;
}
this.curOptionArr = [];
const disW = 158 * this._mapScaleMin;
const baseX = -(arr.length - 1) * disW;
for (let i=0; i<arr.length; i++) {
opItemArr[i].active = true;
if(!isBig) {
opItemArr[i].x = baseX + i * disW * 2;
}
const data = arr[i];
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
opItemArr[i].audioClip = audioClip;
});
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
}
},
setOptionAudioBig(arr) {
this.curOptionArr = [];
for (let i=0; i<arr.length; i++) {
this.optionAudioBgArr[i].active = true;
const data = arr[i];
this.optionAudioBgArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
this.optionAudioBgArr[i].audioClip = audioClip;
});
}
this.optionAudioBgArr[i].data = data;
this.curOptionArr.push(this.optionAudioBgArr[i]);
}
},
setOptionText(options, isBig=false) {
console.log(' in setOptionText, isBig: ', isBig);
let opItemArr = this.optionTextBgArr;
if (isBig) {
opItemArr = this.optionTextBgBigArr
}
this.curOptionArr = [];
const disW = 315 * this._mapScaleMin;
const disH = 120 * this._mapScaleMin;
const baseX = - disW ;
let baseY = -235 * this._mapScaleMin;
if (options.length > 2) {
baseY = -170 * this._mapScaleMin;
}
let count = 0;
for (let i=0; i<options.length; i++) {
if ( i == 2 ) {
baseY -= disH;
count = 0;
}
opItemArr[i].active = true;
if (!isBig) {
opItemArr[i].x = baseX + count * disW * 2;
opItemArr[i].y = baseY;
}
const data = options[i];
opItemArr[i].label.string = data.text;
opItemArr[i].shadowLabel.string = data.text;
opItemArr[i].label["_forceUpdateRenderData"](true);
if (opItemArr[i].label.node.width > opItemArr[i].width * 0.9) {
opItemArr[i].label.node.scale = opItemArr[i].width * 0.9 / opItemArr[i].label.node.width;
} else {
opItemArr[i].label.node.scale = 1;
}
const soundIcon = opItemArr[i].soundIcon;
soundIcon.active = false;
soundIcon.audioClip = null;
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
soundIcon.audioClip = audioClip;
opItemArr[i].audioClip = audioClip;
});
soundIcon.active = true;
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
count++;
}
},
shakeArr: null,
wrongArr: null,
checkBtnClick() {
this.shakeArr = [];
this.wrongArr = [];
this.checkItemWrong();
if (this.wrongArr.length > 0) {
//有选错的
this.itemShake();
this.hideLight();
playAudio(this.wrongClip);
return;
}
const isRightAll = this.checkItemRightCount();
if (!isRightAll) {
// 有漏选的
this.itemShake();
this.hideLight();
playAudio(this.wrongClip);
return;
}
this.showAllRight();
this.showMask();
playAudio(this.rightClip, () => {
this.playAnswerAudio(0);
})
},
playAnswerAudio(index) {
const arr = this.curOptionArr;
if (!arr[index]) {
// delayCall(0.5, () => {
this.changeNextQuestion();
// })
} else {
if ( arr[index].light.opacity > 254 && arr[index].audioClip ) {
playAudio(arr[index].audioClip, () => {
this.playAnswerAudio(index + 1);
})
} else {
this.playAnswerAudio(index + 1);
}
}
},
checkItemWrong() {
const arr = this.curOptionArr;
console.log('arr: ', arr);
for (let i=0; i<arr.length; i++) {
const itemBg = arr[i];
if (itemBg.light.opacity >= 254) {
this.shakeArr.push(itemBg);
console.log('aaa', itemBg.data);;
if (itemBg.data.answerRight == '0') {
this.wrongArr.push(itemBg);
}
}
}
},
checkItemRightCount() {
let rightTotalCount = 0;
const answerArr = this.curQuestionData.answerArr;
for (let i=0; i<answerArr.length; i++) {
if (answerArr[i].answerRight == '1') {
rightTotalCount ++;
}
}
let curRightCount = 0;
const curOptionArr = this.curOptionArr;
for (let i=0; i<curOptionArr.length; i++) {
if (curOptionArr[i].light.opacity > 254) {
curRightCount ++;
}
}
return rightTotalCount == curRightCount;
},
itemShake() {
let rate = 1;
if (this.curQuestionData.answerType == 'text') {
rate = 0.5;
}
const arr = this.shakeArr;
for (let i=0; i<arr.length; i++) {
this.rotateShake(arr[i], rate);
if (arr[i].stopAnim) {
arr[i].stopAnim();
}
}
this.showTryAgain();
},
hideLight() {
const arr = this.curOptionArr;
for (let i=0; i<arr.length; i++) {
arr[i].light.opacity = 0;
}
this.checkBtn.opacity = 0;
},
rotateShake(item, rate = 1) {
const time = 0.9;
cc.tween(item)
.to(time / 6 / 2, {angle: -20 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 12 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: -7 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 4 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: -2 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 1 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 0 * rate}, {easing: 'sineInOut'})
.start();
},
showAllRight() {
const curOptionArr = this.curOptionArr;
for (let i=0; i<curOptionArr.length; i++) {
if (curOptionArr[i].light.opacity > 254) {
this.addIconRight(curOptionArr[i]);
}
}
},
changeNextQuestion() {
console.log(' in changeNextQuestion')
this.curQuestionIndex ++ ;
this.setCurQuestionData();
if (!this.curQuestionData) {
// this.gameEnd();
return;
}
this.showChangeQuesAnim();
},
showChangeQuesAnim() {
this.hideLight();
this.hideCurOptionAnim(() => {
this.setCurOption();
this.showCurOptionAnim();
this.hideMask();
});
this.hideCurQuestion(() => {
this.setCurQuestion();
this.showCurQuestionAnim();
});
},
maskLayer: null,
initMask() {
const maskLayer = new cc.Node();
maskLayer.width = this.canvas.width;
maskLayer.height = this.canvas.height;
this.canvas.addChild(maskLayer, 20);
maskLayer.addComponent(cc.BlockInputEvents);
this.maskLayer = maskLayer;
this.maskLayer.active = false;
},
showMask() {
this.maskLayer.active = true;
},
hideMask() {
this.maskLayer.active = false;
},
hideCurOptionAnim(cb) {
const arr = this.curOptionArr;
const time = 0.5;
for (let i=0; i<arr.length; i++) {
if (arr[i].iconRight) {
arr[i].iconRight.removeFromParent();
arr[i].iconRight = null;
}
cc.tween(arr[i])
.to(time, {opacity: 0}, {easing: "cubicOut"})
.call(() => {
arr[i].active = false;
})
.start();
}
delayCall(time, () => {
cb();
})
},
showCurOptionAnim(cb=null) {
const arr = this.curOptionArr;
const time = 0.5;
for (let i=0; i<arr.length; i++) {
arr[i].opacity = 0;
cc.tween(arr[i])
.to(time, {opacity: 255}, {easing: "cubicIn"})
.start();
}
if (cb) {
delayCall(time, () => {
cb();
})
}
},
hideCurQuestion(cb) {
const time = 0.5;
cc.tween(this.curQuesBg)
.to(time, {opacity: 0}, {easing: "cubicOut"})
.call(() => {
this.curQuesBg.active = false;
cb();
})
.start();
},
showCurQuestionAnim() {
this.curQuesBg.active = true;
this.curQuesBg.opacity = 0;
const time = 0.5;
cc.tween(this.curQuesBg)
.to(time, {opacity: 255}, {easing: "cubicIn"})
.start();
},
gameEnd() {
console.log('game end !')
this.showRestart();
// this.showOneFirework(cc.v2(0, -this.canvas.height / 2), this.canvas, cc.find('paperBase').children, this.canvas.width / 2.5, this.canvas.height * 2, 100, 1);
playAudio(this.finishClip);
const camera = cc.find('Canvas/Main Camera');
camera.zIndex = 100;
showTrebleFirework(camera, cc.find('RibbonNodeBase').children);
onHomeworkFinish();
},
showRestart() {
const btn = getSprNode("btn_restart");
btn.scale = this._mapScaleMin;
btn.baseS = btn.scale;
this.canvas.addChild(btn, 21);
btn.on(cc.Node.EventType.TOUCH_START, () => {
btn.removeFromParent();
this.initData();
this.initStar();
this.showChangeQuesAnim();
playAudio(this.btnClip);
})
const time = 1;
btn.scale = 0;
cc.tween(btn)
.delay(1)
.to(time, {scale: btn.baseS}, {easing: "elasticOut"})
.start();
},
async showOneFirework(pos, parentNode, nodeList, w, h, n, timeRate=1) {
for (let i = 0; i < 3; i++) {
this.showFirework(pos, parentNode, nodeList, w, h, n, timeRate);
await asyncDelay(0.1);
}
},
showFirework(pos, parentNode, nodeList, width = 200, height = 500, number = 30, timeRate=1) {
const subTime = 1;
for (let i = 0; i < number; i++) {
const quad = this.createQuads(pos, parentNode, nodeList);
const targetX = RandomInt(width / 2, -width / 2);
const targetY = RandomInt(height);
cc.tween(quad)
.by(0.5 * timeRate, { x: targetX })
.by((2 + subTime * Math.random()) * timeRate, { x: targetX * 2 })
.start();
cc.tween(quad)
.by(0.5 * timeRate, { y: targetY }, { easing: 'quadOut' })
.to((3 + subTime * Math.random()) * timeRate, { y: -parentNode.height * 2 }, { easing: 'quadIn' })
.removeSelf()
.start();
cc.tween(quad)
.delay(1 * timeRate)
.to((0.5 + subTime * Math.random()) * timeRate , { opacity: 0 })
.start();
}
},
createQuads(pos, parentNode, nodeList) {
const quadBase = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
quadBase.x = pos.x;
quadBase.y = pos.y;
quadBase.z = pos.z;
quadBase.angle = RandomInt(180);
quadBase.parent = parentNode;
const quad = quadBase.getChildByName('quad');
quad.x = 0;
quad.y = 0;
quad.angle = RandomInt(180);
const paper = quad.getChildByName('paper');
paper.scaleX = Math.random() * 0.8 + 0.2;
paper.scaleY = Math.random() * 0.8 + 0.2;
quadBase.scaleX = Math.random();
cc.tween(quadBase)
.to((1 - quadBase.scaleX) * 0.3, { scaleX: 1 })
.call(() => {
const time = Math.random() * 0.2;
cc.tween(quadBase)
.to(0.1 + time, { scaleX: -1 })
.to(0.1 + time, { scaleX: 1 })
.union()
.repeatForever()
.start();
})
.start();
return quadBase;
},
restart() {
},
initTitle() {
const offX = 96;
const offY = 11;
const title = getSprNode('title_bg');
title.parent = this.canvas;
title.scale = this._mapScaleMin;
title.zIndex = 10;
title.x = -this.canvas.width / 2 + title.width / 2 * title.scale + offX;
title.y = this.canvas.height / 2 - title.height / 2 * title.scale - offY;
// console.log('this.data: ', this.data);
title.addComponent(cc.Button)
title.on('click', () => {
if (this.data.title_audio_url) {
playAudioByUrl(this.data.title_audio_url);
}
})
const labelNode = new cc.Node();
labelNode.parent = title;
const label = labelNode.addComponent(cc.RichText);
const size = 42
label.font = cc.find('Canvas/res/font/aharoni').getComponent(cc.Label).font;
label.string = `<outline color=#a83c13 width=2><size=${size}><color=#ffffff>${this.data.title || " " }</color></size></outline>`
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
label.lineHeight = size;
label.horizontalAlign = cc.macro.TextAlignment.LEFT
labelNode.anchorX = 0;
labelNode.anchorY = 1
labelNode.x = -title.width / 2 + 90;
const maxLen = 305;
if (labelNode.width > maxLen) {
labelNode.scale = maxLen / labelNode.width;
}
labelNode.y = labelNode.height / 2 * labelNode.scale + 15;
},
initBg() {
// if (!this.data.pic_url) {
// return;
// }
// getSprNodeByUrl, setSprNodeMaxLen(this.data.pic_url, (spr) => {
// this.canvas.addChild(spr.node);
// spr.node.scale = this._mapScaleMax;
// });
},
initHotZone() {
this.initHotZoneBg();
},
hotZoneBg: null,
initHotZoneBg() {
this.hotZoneBg = new cc.Node();
this.hotZoneBg.name = 'hotZoneBg';
this.hotZoneBg.parent = cc.find('Canvas');
this.hotZoneBg.zIndex = 4;
if (!this.data.bgItem) {
return;
}
cc.loader.load({url: this.data.bgItem.url}, (err, img) => {
// this.addMask(this.hotZoneBg);
this.hotZoneBg.width = img.width;
this.hotZoneBg.height = img.height;
const sprNode = new cc.Node();
sprNode.name = 'bgItemSpr'
var sf = new cc.SpriteFrame(img);
// const spr = this.hotZoneBg.addComponent(cc.Sprite);
const spr = sprNode.addComponent(cc.Sprite);
spr.spriteFrame = sf
sprNode.width = this.hotZoneBg.width;
sprNode.height = this.hotZoneBg.height;
sprNode.parent = this.hotZoneBg;
window['bg'] =sprNode
const sx = this.canvas.width / this.hotZoneBg.width;
const sy = (this.canvas.height) / this.hotZoneBg.height;
const s = Math.min(sx, sy);
this.hotZoneBg.scale = s;
// this.data.bgItem.isShowDebugLine = true;
this.initHotZoneItem();
});
},
initHotZoneItem() {
this.data.hotZoneItemArr.forEach((item) => {
// console.log('item.gIdx: ', item.gIdx);
switch (item.gIdx) {
case "0":
this.setOneDragPic(item);
break;
case "1":
this.setOneDragAction(item);
break;
case "2":
this.setOneRect(item);
break;
default:
break;
}
});
},
addMask(node) {
const mask = node.addComponent(cc.Mask);
mask.type = cc.Mask.Type.RECT;
},
setOneDragAction(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY ;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
const {x, y, width, height} = rectNode;
// rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(-rectNode.width / 2, -rectNode.height / 2, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
rectNode.x += rectNode.width / 2;
rectNode.y += rectNode.height / 2;
rectNode.baseX = rectNode.x;
rectNode.baseY = rectNode.y;
rectNode.targetOff();
rectNode.on(cc.Node.EventType.TOUCH_START, () => {
if (rectNode.isDragEnd) {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
return;
}
this._curShowItem = rectNode;
})
const realRate = this.hotZoneBg.width / this.data.bgItem.rect.width;
rectNode.targetPx = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
rectNode.targetPy = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
console.log('setOneAction ~~ data: ', data)
const actionData = data['actionData_' + data.gIdx];
if (!actionData) {
return;
}
if (actionData.type == 'text') {
const label = this.setOneActionText(rectNode, actionData);
label.node.scale = scale * data.fontScale;
label.node.targetOff();
// label.overflow = cc.Label.Overflow.NONE;
// label.node.setContentSize(new cc.Size(0, lineHeight));
label["_forceUpdateRenderData"](true);
} else if (actionData.type == 'pic') {
const pic = this.setOneActionPic(rectNode, actionData);
} else if (actionData.type == 'anima') {
const anima = this.setOneActionAnima(rectNode, actionData);
}
},
setOneAction(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY ;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
const {x, y, width, height} = rectNode;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
console.log('setOneAction ~~ data: ', data)
const actionData = data['actionData_' + data.gIdx];
if (!actionData) {
return;
}
if (actionData.type == 'text') {
const label = this.setOneActionText(rectNode, actionData);
label.node.scale = scale * data.fontScale;
// label.overflow = cc.Label.Overflow.NONE;
// label.node.setContentSize(new cc.Size(0, lineHeight));
label["_forceUpdateRenderData"](true);
} else if (actionData.type == 'pic') {
const pic = this.setOneActionPic(rectNode, actionData);
} else if (actionData.type == 'anima') {
const anima = this.setOneActionAnima(rectNode, actionData);
}
},
setOneActionText(rectNode, actionData) {
const labelNode = new cc.Node();
labelNode.parent = rectNode;
const label = labelNode.addComponent(cc.Label);
label.font = cc.find('Canvas/res/font/ahronbd-1').getComponent(cc.Label).font;
label.string = actionData.text;
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
// label.lineHeight = size;
// label.horizontalAlign = cc.macro.TextAlignment.LEFT
// labelNode.anchorX = 0;
// labelNode.anchorY = 1
labelNode.color = cc.Color.BLACK;
const opArr = actionData.changeOption
// console.log('opArr', opArr);
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opArr[0]', opArr[i])
if (opData[0] == 'fontColor') {
const color = new cc.Color();
cc.Color.fromHEX(color, opData[1] );
labelNode.color = color;
} else if (opData[0] == 'opacity') {
// console.log('opData: ', opData)
labelNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
// console.log(labelNode.opacity);
tweenArr.push({item: labelNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[0]},)
} else {
label[opData[0]] = opData[1];
tweenArr.push({item: label, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[0]})
}
}
// if (actionData.audio_url) {
// cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
// labelNode.audioClip = audioClip;
// });
// }
label.lineHeight = label.fontSize;
// labelNode.y += rectNode.height / 2;
// labelNode.x += rectNode.width / 2;
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (labelNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.audioEngine.playEffect(labelNode.audioClip, false, 0.8);
// }
// if (labelNode.isClicked) {
// // return;
// }
// labelNode.isClicked = true;
// for (let i=0; i<tweenArr.length; i++) {
// const tweenData = tweenArr[i];
// if (tweenData.optionName == 'opacity') {
// console.log('~~~ ', tweenData.item[tweenData.optionName] );
// cc.tween(tweenData.item)
// .to(actionData.changeTime, JSON.parse(tweenData.option) )
// .start();
// }
// }
// });
return label;
},
setOneActionPic(rectNode, actionData) {
console.log('setOneActionPic actionData: ', actionData)
const picNode = new cc.Node();
rectNode.addChild(picNode);
cc.loader.load({url: actionData.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
picNode.y += rectNode.height / 2;
picNode.x += rectNode.width / 2;
picNode.scaleX = rectNode.width / picNode.width;
picNode.scaleY = rectNode.height / picNode.height;
const opArr = actionData.changeOption
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opData: ~~~ ', opData);
if (opData[0] == 'opacity') {
picNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
console.log(picNode.opacity);
tweenArr.push({item: picNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[0]},)
} else {
// picNode[opData[0]] = Number(opData[1]);
// tweenArr.push({item: picNode, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[0]})
}
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
for (let i=0; i<tweenArr.length; i++) {
const tweenData = tweenArr[i];
if (tweenData.optionName == 'opacity') {
cc.tween(tweenData.item)
.to(actionData.changeTime, JSON.parse(tweenData.option) )
.start();
}
}
});
}
});
},
setOneActionAnima(rectNode, actionData) {
const animaNode = new cc.Node();
rectNode.addChild(animaNode);
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
const data = actionData;
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
if (!data.texPngData) {
return
}
const image = data.texPngData.url//"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png";
const ske = data.skeJsonData.url//"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json";
const atlas = data.texJsonData.url//"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json";
cc.loader.load(image, (error, texture) => {
cc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {
cc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = atlasJson;
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = dragonBonesJson;
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let json = JSON.parse(asset.dragonBonesJson);
let armatures = json["armature"];
let armatureNames = [];
for (let i = 0; i < armatures.length; i++) {
armatureNames.push(armatures[i].name);
}
// console.log('armatureNames: ', armatureNames);
let animationNames = [];
if (armatureNames.length > 0) {
let defaultArmatureName = armatureNames[0];
dragonDisplay.armatureName = defaultArmatureName;
// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);
let defaultArmature = armatures[0];
let animations = defaultArmature.animation;
for (let i = 0; i < animations.length; i++) {
animationNames.push(animations[i].name);
}
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (rectNode.isClicked) {
// // return;
// }
// rectNode.isClicked = true;
// console.log('clicked');
// if (rectNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.director.emit('STOP_ALL_AUDIO')
// cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
// }
// if (animationNames.length > 0) {
// dragonDisplay.playAnimation(animationNames[0], 1);
// }
// });
}
// animaNode.x = rectNode.x + rectNode.width / 2;
// animaNode.y = rectNode.y + rectNode.height / 2;
// const sx = rectNode.width / animaNode.width;
// const sy = rectNode.height / animaNode.height;
// const scale = Math.min(sx, sy);
// animaNode.scale = scale;
animaNode.y += rectNode.height / 2;
animaNode.x += rectNode.width / 2;
animaNode.scaleX = rectNode.width / animaNode.width;
animaNode.scaleY = rectNode.height / animaNode.height;
const opArr = actionData.changeOption
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opData: ~~~ ', opData);
if (opData[0] == 'opacity') {
animaNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
console.log(animaNode.opacity);
tweenArr.push({item: animaNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[2] == null ? '' : opData[0]},)
} else {
// animaNode[opData[0]] = Number(opData[1]);
// tweenArr.push({item: animaNode, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[2] == null ? '' : opData[0]})
}
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
for (let j=0; j<tweenArr.length; j++) {
const tweenData = tweenArr[j];
console.log('tweenData: ', tweenData);
if (tweenData.optionName) {
cc.tween(tweenData.item)
.to(actionData.changeTime, JSON.parse(tweenData.option))
.start();
}
}
if (animationNames.length > 0) {
dragonDisplay.playAnimation(animationNames[0], 1);
}
});
}
});
});
});
},
setOneAnimaSmall(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
const animaNode = new cc.Node();
animaNode.name = 'anima_' + data.index;
this.hotZoneBg.addChild(animaNode);
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
animaNode.audioClip = audioClip;
});
}
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
if (!data.texPngData) {
return
}
const image = data.texPngData.url//"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png";
const ske = data.skeJsonData.url//"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json";
const atlas = data.texJsonData.url//"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json";
cc.loader.load(image, (error, texture) => {
cc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {
cc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = atlasJson;
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = dragonBonesJson;
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let json = JSON.parse(asset.dragonBonesJson);
let armatures = json["armature"];
// console.log('armatures: ', armatures);
let armatureNames = [];
for (let i = 0; i < armatures.length; i++) {
armatureNames.push(armatures[i].name);
}
// console.log('armatureNames: ', armatureNames);
if (armatureNames.length > 0) {
let defaultArmatureName = armatureNames[0];
dragonDisplay.armatureName = defaultArmatureName;
// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);
let defaultArmature = armatures[0];
let animations = defaultArmature.animation;
let animationNames = [];
for (let i = 0; i < animations.length; i++) {
animationNames.push(animations[i].name);
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
console.log('clicked');
if (animaNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.director.emit('STOP_ALL_AUDIO')
cc.audioEngine.playEffect(animaNode.audioClip, false, 0.8);
}
if (animationNames.length > 0) {
dragonDisplay.playAnimation(animationNames[0], 1);
}
});
}
animaNode.x = rectNode.x + rectNode.width / 2;
animaNode.y = rectNode.y + rectNode.height / 2;
const sx = rectNode.width / animaNode.width;
const sy = rectNode.height / animaNode.height;
const scale = Math.min(sx, sy);
animaNode.scale = scale;
});
});
});
},
setOneDragPic(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const picNode = new cc.Node();
picNode.name= 'pic' + data.index;
picNode.data = data;
this.hotZoneBg.addChild(picNode);
cc.loader.load({url: data.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
const scale = rate / this.hotZoneBg.scaleY;
picNode.width = data.rect.width * scale;
picNode.height = data.rect.height * scale;
picNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
picNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
picNode.x += picNode.width / 2 * picNode.scaleX;
picNode.y += picNode.height / 2 * picNode.scaleX;
// picNode.anchorX = picNode.anchorY = 0;
// if (data.audio_url) {
// this.addPicAudio(picNode);
// }
this.addDragPoint(picNode, data)
});
},
addDragPoint(picNode, data) {
picNode.baseX = picNode.x;
picNode.baseY = picNode.y;
const realRate = this.hotZoneBg.width / this.data.bgItem.rect.width;
picNode.targetPx = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
picNode.targetPy = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
picNode.audioClip = audioClip;
});
}
picNode.on(cc.Node.EventType.TOUCH_START, () => {
if (picNode.isDragEnd) {
if (picNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(picNode.audioClip, false, 0.8);
}
return;
}
this._curShowItem = picNode;
// picNode.x = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
// picNode.y = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
})
},
setOnePic(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const picNode = new cc.Node();
picNode.name= 'pic' + data.index;
picNode.data = data;
this.hotZoneBg.addChild(picNode);
cc.loader.load({url: data.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
const scale = rate / this.hotZoneBg.scaleY;
picNode.width = data.rect.width * scale;
picNode.height = data.rect.height * scale;
picNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
picNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
picNode.anchorX = picNode.anchorY = 0;
if (data.audio_url) {
this.addPicAudio(picNode);
}
});
},
setOneRect(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY;
// console.log('scale: ', scale);
// console.log('scale2: ', scale / data.mapScale);
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
// rectNode.scale = 1 / data.mapScale;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
// console.log('```data: ', data)
this.dragEndRectArr.push(rectNode);
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (rectNode.isClicked) {
// // return;
// }
// rectNode.isClicked = true;
// console.log('clicked');
// if (rectNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
// }
// });
},
addPicAudio(picNode) {
const data = picNode.data;
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
picNode.audioClip = audioClip;
});
picNode.addComponent(cc.Button);
picNode.on('click', () => {
if (picNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(picNode.audioClip, false, 0.8);
}
});
},
initListener() {
const canvas = cc.find('Canvas');
let downFlag = false;
const touchMove = (e) => {
this.canvasTouchMove(e);
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_MOVE)) {
canvas.off(cc.Node.EventType.MOUSE_MOVE, mouseMove)
}
}
const mouseMove = (e) => {
if (!downFlag) {
return;
}
this.canvasTouchMove(e);
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_MOVE)) {
canvas.off(cc.Node.EventType.TOUCH_MOVE, touchMove)
this.removeHtmlCanvasListener('touchmove');
}
}
const touchEnd = (e) => {
downFlag = false;
this.canvasTouchEnd(e);
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_UP)) {
canvas.off(cc.Node.EventType.MOUSE_UP, mouseUp)
}
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_LEAVE)) {
canvas.off(cc.Node.EventType.MOUSE_LEAVE, mouseUp)
}
this.removeHtmlTouchEnd();
}
const mouseUp = (e) => {
downFlag = false;
this.canvasTouchEnd(e);
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_END)) {
canvas.off(cc.Node.EventType.TOUCH_END, touchEnd)
}
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_CANCEL)) {
canvas.off(cc.Node.EventType.TOUCH_CANCEL, touchEnd)
}
}
canvas.on(cc.Node.EventType.TOUCH_MOVE, touchMove)
canvas.on(cc.Node.EventType.MOUSE_MOVE, mouseMove)
canvas.on(cc.Node.EventType.TOUCH_END, touchEnd)
canvas.on(cc.Node.EventType.TOUCH_CANCEL, touchEnd)
canvas.on(cc.Node.EventType.MOUSE_UP, mouseUp)
},
removeHtmlCanvasListener(type) {
const canvasHtml = document.querySelector('canvas');
canvasHtml.addEventListener(type, (e) => {})
},
removeHtmlTouchEnd() {
const canvasHtml = document.querySelector('canvas');
canvasHtml.removeEventListener('touchend', this.htmlCanvasTouchendFunc, this);
},
canvasTouchMove(e) {
if (!this._curShowItem) {
return;
}
const pos = e.getLocation();
this._curShowItem.x = pos.x - e.currentTarget.width / 2;
this._curShowItem.y = pos.y - e.currentTarget.height / 2;
// console.log('pos: ', pos.x);
},
canvasTouchEnd(e) {
if (!this._curShowItem) {
return;
}
this.checkOnDragEndRect();
this._curShowItem = null;
},
checkOnDragEndRect() {
console.log('emptyGroupArr: ', this.emptyGroupArr);
for (let i = 0; i < this.dragEndRectArr.length; i++) {
const rect = this.dragEndRectArr[i];
const worldPos = this._curShowItem.parent.convertToWorldSpaceAR(cc.v2(this._curShowItem.x, this._curShowItem.y));
const worldRect = rect.getBoundingBoxToWorld();
if (worldRect.contains(worldPos)) {
console.log('rect in ')
this.checkIsDragEndTarget(rect);
// removeItemFromArr(this.emptyGroupArr, letterGroup);
// this.showLetterSuccess(letterGroup);
// this.checkGroupEnd();
return;
}
}
this.itemBack();
},
itemBack() {
cc.audioEngine.playEffect(this.wrongClip, false, 0.8);
cc.tween(this._curShowItem)
.to(0.5, {x: this._curShowItem.baseX, y: this._curShowItem.baseY}, {easing: "elasticOut"})
.start();
},
checkIsDragEndTarget(rect) {
const worldPos = this._curShowItem.parent.convertToWorldSpaceAR(cc.v2(this._curShowItem.targetPx, this._curShowItem.targetPy));
const worldRect = rect.getBoundingBoxToWorld();
if (worldRect.contains(worldPos)) {
this._curShowItem.x = this._curShowItem.targetPx;
this._curShowItem.y = this._curShowItem.targetPy;
this._curShowItem.isDragEnd = true;
cc.audioEngine.playEffect(this.rightClip, false, 0.8);
} else {
this.itemBack();
}
},
});
{
"ver": "1.0.8",
"uuid": "f8b451ff-857c-4ca8-9870-866bc5154a29",
"uuid": "40eb8e96-d0cf-4860-9228-b8975b9e2db5",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
......@@ -70,72 +70,9 @@ export function setSprNodeMaxLen(sprNode, maxW, maxH) {
sprNode.scale = Math.round(s * 1000) / 1000;
}
export function localPosTolocalPos(baseNode, targetNode) {
const worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
const localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
export function worldPosToLocalPos(worldPos, baseNode) {
const localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
export function getScaleRateBy2Node(baseNode, targetNode, maxFlag = true) {
const worldRect1 = targetNode.getBoundingBoxToWorld();
const worldRect2 = baseNode.getBoundingBoxToWorld();
const sx = worldRect1.width / worldRect2.width;
const sy = worldRect1.height / worldRect2.height;
if (maxFlag) {
return Math.max(sx, sy);
} else {
return Math.min(sx, sy);
}
}
export function getDistance (start, end){
var pos = cc.v2(start.x - end.x, start.y - end.y);
var dis = Math.sqrt(pos.x*pos.x + pos.y*pos.y);
return dis;
}
export function playAudioByUrl(audio_url, cb=null) {
if (audio_url) {
cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
if (cb) {
cc.audioEngine.setFinishCallback(audioId, () => {
cb();
});
}
});
}
}
export function btnClickAnima(btn, time=0.15, rate=1.05) {
btn.tmpScale = btn.scale;
btn.on(cc.Node.EventType.TOUCH_START, () => {
cc.tween(btn)
.to(time / 2, {scale: btn.scale * rate})
.start()
})
btn.on(cc.Node.EventType.TOUCH_CANCEL, () => {
cc.tween(btn)
.to(time / 2, {scale: btn.tmpScale})
.start()
})
btn.on(cc.Node.EventType.TOUCH_END, () => {
cc.tween(btn)
.to(time / 2, {scale: btn.tmpScale})
.start()
})
}
export function getSpriteFrimeByUrl(url, cb) {
cc.loader.load({ url }, (err, img) => {
cc.loader.load({url}, (err, img) => {
const spriteFrame = new cc.SpriteFrame(img)
if (cb) {
cb(spriteFrame);
......@@ -144,10 +81,13 @@ export function getSpriteFrimeByUrl(url, cb) {
}
export function getSprNode(resName) {
const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
const node = new cc.Node();
node.addComponent(cc.Sprite).spriteFrame = sf;
return node;
const baseNode = cc.find('Canvas/res/img/' + resName);
return cc.instantiate(baseNode);
// const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
// const node = new cc.Node();
// node.addComponent(cc.Sprite).spriteFrame = sf;
// return node;
}
export function getSprNodeByUrl(url, cb) {
......@@ -163,99 +103,43 @@ export function getSprNodeByUrl(url, cb) {
export function playAudio(audioClip, cb = null) {
if (audioClip) {
const audioId = cc.audioEngine.playEffect(audioClip, false);
export function playAudio(audioClip, cb=null) {
if (audioClip) {
const audioId = cc.audioEngine.playEffect(audioClip, false, 0.8);
if (cb) {
cc.audioEngine.setFinishCallback(audioId, () => {
cb();
});
}
}
return audioId;
}
}
export function playAudioByUrl(audio_url, cb=null) {
if (audio_url) {
cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
playAudio(audioClip, cb);
});
}
}
export async function asyncDelay(time) {
return new Promise((resolve, reject) => {
try {
cc.tween(cc.find('Canvas'))
.delay(time)
.call(()=>{
resolve(null);
})
.start();
setTimeout(() => {
resolve();
}, time * 1000);
} catch (e) {
reject(e);
}
})
}
export async function asyncLoadDragonBoneAnime(node, { skeJsonData: { url: skeJsonDataUrl }, texJsonData: { url: texJsonDataUrl }, texPngData: { url: texPngDataUrl } }) {
if (!texPngDataUrl || !texJsonDataUrl || !texPngDataUrl
|| texPngDataUrl == '' || texJsonDataUrl == '' || texPngDataUrl == '') {
return;
}
return new Promise((resolve, reject) => {
if (node.animaNode) {
node.animaNode.removeFromParent();
}
const animaNode = new cc.Node();
animaNode.name = 'animaNode';
animaNode.parent = node;
animaNode.active = true;
node.animaNode = animaNode;
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
const loadTexture = new Promise((resolve, reject) => {
cc.assetManager.loadRemote(texPngDataUrl, (error, texture) => {
if (error) {
reject(error);
}
resolve(texture);
});
});
const loadTexJsonData = new Promise((resolve, reject) => {
cc.assetManager.loadAny({ url: texJsonDataUrl }, (error, atlasJson) => {
if (error) {
reject(error);
}
resolve(atlasJson);
});
});
const loadSkeJsonData = new Promise((resolve, reject) => {
cc.assetManager.loadAny({ url: skeJsonDataUrl }, (error, dragonBonesJson) => {
if (error) {
reject(error);
}
resolve(dragonBonesJson);
});
});
Promise.all([loadTexture, loadTexJsonData, loadSkeJsonData]).then(([texture, atlasJson, dragonBonesJson]) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = JSON.stringify(atlasJson);
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = JSON.stringify(dragonBonesJson);
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let armatureNames = dragonBonesJson.armature.map(data => data.name);
if (armatureNames.length > 0) {
dragonDisplay.armatureName = armatureNames[0];
}
resolve(animaNode);
});
});
}
export class FireworkSettings {
baseNode; // 父节点
nodeList; // 火花节点的array
......@@ -366,7 +250,7 @@ export async function asyncTweenTo(node, duration, obj, ease = undefined) {
cc.tween(node)
.to(duration, obj, ease)
.call(() => {
resolve(null);
resolve();
})
.start();
} catch (e) {
......@@ -381,7 +265,7 @@ export async function asyncTweenBy(node, duration, obj, ease = undefined) {
cc.tween(node)
.by(duration, obj, ease)
.call(() => {
resolve(null);
resolve();
})
.start();
} catch (e) {
......@@ -411,65 +295,62 @@ export function showTrebleFirework(baseNode, rabbonList) {
showFireworks(right);
}
export function httpHeadCall(requsetUrl: string, callback) {
let xhr = new XMLHttpRequest();
console.log("Status: Send Post Request to " + requsetUrl);
try {
xhr.onreadystatechange = () => {
try {
console.log('xhr.readyState: ', xhr.readyState);
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 400)) {
callback(true);
} else {
callback(false);
}
}
} catch (e) {
console.log(e)
export function delayCall(time, cb) {
return cc.tween({})
.delay(time)
.call(() => {
if (cb) {
cb();
}
};
xhr.open("HEAD", requsetUrl, true);
xhr.send();
xhr.timeout = 15000;
xhr.onerror = (e) => {
callback(false);
};
xhr.ontimeout = (e) => {
callback(false);
};
} catch (e) {
console.log("Send Get Request error: ", e);
}
})
.start();
}
export function onHomeworkFinish(data = "", callback = ()=>{}) {
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
middleLayerComponent.onHomeworkFinish(callback, data);
} else {
console.log('onHomeworkFinish', JSON.stringify(data));
export function removeFromArr(arr, item) {
const index = arr.indexOf(item);
if (index != -1) {
arr.splice(index, 1);
return true;
}
return false;
}
export function callMiddleLayerFunction(apiName: string, data: any, callback: Function) {
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
middleLayerComponent.callMiddleLayerFunction(apiName, data, callback);
} else {
console.log('callMiddleLayerFunction: ' + apiName);
}
export function showBtnAnima(btn, cb=null) {
const baseS = btn.scale;
cc.tween(btn)
.to(0.05, {scale: 0.9 * baseS})
.to(0.05, {scale: 1 * baseS})
.call(() => {
if (cb) {
cb();
}
})
.start();
}
export function showTips(tips) {
export function jellyShake(node) {
const baseS = node.scale;
const time = 1;
cc.tween(node)
.to(time / 5 / 2, {scaleX: baseS * 0.8, scaleY: baseS * 1.2}, {easing: "sineInOut"})
.to(time / 5, {scaleX: baseS * 1.1, scaleY: baseS * 0.9}, {easing: "sineInOut"})
.to(time / 5, {scaleX: baseS * 0.95, scaleY: baseS * 1.15}, {easing: "sineInOut"})
.to(time / 5, {scaleX: baseS * 1.02, scaleY: baseS * 0.98}, {easing: "sineInOut"})
.to(time / 5, {scaleX: baseS * 1, scaleY: baseS * 1}, {easing: "sineInOut"})
.start();
}
export function onHomeworkFinish() {
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
middleLayer.getComponent('middleLayer').showTips(tips);
} else {
console.log(tips);
const middleLayerComponent = middleLayer.getComponent('middleLayer');
if (middleLayerComponent.role == 'student') {
middleLayerComponent.onHomeworkFinish(() => { });
}
return;
}
}
}
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "c41b0e51-55d7-443c-af3a-b22c3dd9b9e5",
"uuid": "25ccf041-bdf3-4b6a-8683-c24e4c39fed4",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
!(function (global) {
"use strict";
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
var inModule = typeof module === "object";
var runtime = global.regeneratorRuntime;
if (runtime) {
if (inModule) {
// If regeneratorRuntime is defined globally and we're in a module,
// make the exports object identical to regeneratorRuntime.
module.exports = runtime;
}
// Don't bother evaluating the rest of this file if the runtime was
// already defined globally.
return;
}
// Define the runtime globally (as expected by generated code) as either
// module.exports (if we're in a module) or a new, empty object.
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
runtime.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() { }
function GeneratorFunction() { }
function GeneratorFunctionPrototype() { }
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
IteratorPrototype[iteratorSymbol] = function () {
return this;
};
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
GeneratorFunctionPrototype[toStringTagSymbol] =
GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function (method) {
prototype[method] = function (arg) {
return this._invoke(method, arg);
};
});
}
runtime.isGeneratorFunction = function (genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
runtime.mark = function (genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
if (!(toStringTagSymbol in genFun)) {
genFun[toStringTagSymbol] = "GeneratorFunction";
}
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
runtime.awrap = function (arg) {
return { __await: arg };
};
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return Promise.resolve(value.__await).then(function (value) {
invoke("next", value, resolve, reject);
}, function (err) {
invoke("throw", err, resolve, reject);
});
}
return Promise.resolve(value).then(function (unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration. If the Promise is rejected, however, the
// result for this iteration will be rejected with the same
// reason. Note that rejections of yielded Promises are not
// thrown back into the generator function, as is the case
// when an awaited Promise is rejected. This difference in
// behavior between yield and await is important, because it
// allows the consumer to decide what to do with the yielded
// rejection (swallow it and continue, manually .throw it back
// into the generator, abandon iteration, whatever). With
// await, by contrast, there is no opportunity to examine the
// rejection reason outside the generator function, so the
// only option is to throw it from the await expression, and
// let the generator function handle the exception.
result.value = unwrapped;
resolve(result);
}, reject);
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new Promise(function (resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
return this;
};
runtime.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
runtime.async = function (innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList)
);
return runtime.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
if (delegate.iterator.return) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;
}
}
context.method = "throw";
context.arg = new TypeError(
"The iterator does not provide a 'throw' method");
}
return ContinueSentinel;
}
var record = tryCatch(method, delegate.iterator, context.arg);
if (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (!info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
Gp[toStringTagSymbol] = "Generator";
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol] = function () {
return this;
};
Gp.toString = function () {
return "[object Generator]";
};
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (2 in locs) {
entry.finallyLoc = locs[2];
entry.afterLoc = locs[3];
}
this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal";
delete record.arg;
entry.completion = record;
}
function Context(tryLocsList) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
runtime.keys = function (object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
runtime.values = values;
function doneResult() {
return { value: undefined, done: true };
}
Context.prototype = {
constructor: Context,
reset: function (skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined;
}
}
}
},
stop: function () {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function (exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined;
}
return !!caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function (type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev &&
hasOwn.call(entry, "finallyLoc") &&
this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function (record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function (finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function (tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function (iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined;
}
return ContinueSentinel;
}
};
})(
// In sloppy mode, unbound `this` refers to the global object, fallback to
// Function constructor if we're in global strict mode. That is sadly a form
// of indirect eval which violates Content Security Policy.
(function () { return this })() || Function("return this")()
);
{
"ver": "1.0.8",
"uuid": "b54300af-b8e5-4b4e-aa2f-9ac1cef7b598",
"uuid": "e2e0dcb5-f556-4545-b84a-3e9fb09c0a68",
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
{
"ver": "1.1.2",
"uuid": "2582562a-54bb-483a-8483-727d57c6c974",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.0",
"uuid": "c551970e-b095-45f3-9f1d-25cde8b8deb1",
"uuid": "f4ebd988-078f-4f85-b843-133e12c5774e",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "835caf90-a4a3-49b7-891c-8b9628c6c1a3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 29,
"height": 29,
"platformSettings": {},
"subMetas": {
"Img_paper": {
"ver": "1.0.4",
"uuid": "b4eaff45-6718-4047-9d8f-5ecea01f08ae",
"rawTextureUuid": "835caf90-a4a3-49b7-891c-8b9628c6c1a3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 29,
"height": 29,
"rawWidth": 29,
"rawHeight": 29,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e1b4d971-9876-4832-803a-5a321964a78b",
"uuid": "f73439bb-2820-448a-8b6c-ec3157dcfaed",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
......@@ -13,8 +13,8 @@
"subMetas": {
"bg": {
"ver": "1.0.4",
"uuid": "8288e3d4-4c75-4b27-8f01-f7014417f4dd",
"rawTextureUuid": "e1b4d971-9876-4832-803a-5a321964a78b",
"uuid": "7737d8d8-7844-499e-8299-212677299f62",
"rawTextureUuid": "f73439bb-2820-448a-8b6c-ec3157dcfaed",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......
{
"ver": "2.3.5",
"uuid": "08b40084-2634-4cc3-818d-f396a15a951d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 697,
"platformSettings": {},
"subMetas": {
"bg_2": {
"ver": "1.0.4",
"uuid": "b5e75143-dbe8-4edd-b6bb-f60633fe052b",
"rawTextureUuid": "08b40084-2634-4cc3-818d-f396a15a951d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 697,
"rawWidth": 1280,
"rawHeight": 697,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "9a79969a-0506-48d4-bc98-3c05d109b027",
"uuid": "5624a60d-df0d-48f5-9a29-2e7924ff02e5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 61,
"height": 67,
"width": 36,
"height": 24,
"platformSettings": {},
"subMetas": {
"btn_left": {
"bg_sahua": {
"ver": "1.0.4",
"uuid": "ce19457d-e8f3-4c38-ae3e-d4b99208ddb5",
"rawTextureUuid": "9a79969a-0506-48d4-bc98-3c05d109b027",
"uuid": "0290c32f-9b41-4ec2-ab60-4e07ac969a63",
"rawTextureUuid": "5624a60d-df0d-48f5-9a29-2e7924ff02e5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 61,
"height": 67,
"rawWidth": 61,
"rawHeight": 67,
"width": 36,
"height": 24,
"rawWidth": 36,
"rawHeight": 24,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "cd3d8ab9-31ad-4d7a-98a3-c8206f7dce8c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 200,
"height": 89,
"platformSettings": {},
"subMetas": {
"btn_check": {
"ver": "1.0.4",
"uuid": "bdead064-323f-4d78-b0e9-53868dc5f1bf",
"rawTextureUuid": "cd3d8ab9-31ad-4d7a-98a3-c8206f7dce8c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 200,
"height": 89,
"rawWidth": 200,
"rawHeight": 89,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ea4acc87-e02e-4827-8be8-45bcc7d60742",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 384,
"height": 151,
"platformSettings": {},
"subMetas": {
"btn_restart": {
"ver": "1.0.4",
"uuid": "e7760b41-5fa9-4e7e-abcc-54ebb79e1d70",
"rawTextureUuid": "ea4acc87-e02e-4827-8be8-45bcc7d60742",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 384,
"height": 151,
"rawWidth": 384,
"rawHeight": 151,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6b03a6fc-96d5-49a3-817e-368e7ed68e06",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 278,
"height": 275,
"platformSettings": {},
"subMetas": {
"icon_bigstar": {
"ver": "1.0.4",
"uuid": "13ba294e-e1ed-4529-adb4-fde4d01710d6",
"rawTextureUuid": "6b03a6fc-96d5-49a3-817e-368e7ed68e06",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 278,
"height": 275,
"rawWidth": 278,
"rawHeight": 275,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "1c25602a-d3f9-415b-9fb1-bae9ec858d0d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 122,
"height": 95,
"platformSettings": {},
"subMetas": {
"icon_right": {
"ver": "1.0.4",
"uuid": "a2c9f2c3-0255-4e93-a6fc-c578f71db2a4",
"rawTextureUuid": "1c25602a-d3f9-415b-9fb1-bae9ec858d0d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 122,
"height": 95,
"rawWidth": 122,
"rawHeight": 95,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d9e1514c-10d5-4e20-acb8-17e57fc3d1e5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 720,
"platformSettings": {},
"subMetas": {
"old_bg": {
"ver": "1.0.4",
"uuid": "8f91b960-a198-4876-9fe1-f956ecbd765b",
"rawTextureUuid": "d9e1514c-10d5-4e20-acb8-17e57fc3d1e5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "249674f2-ae69-4209-a8f4-901abe8a860b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 454,
"height": 113,
"platformSettings": {},
"subMetas": {
"old_bg_tryagain": {
"ver": "1.0.4",
"uuid": "80e29b22-f373-485c-8211-8b57da727698",
"rawTextureUuid": "249674f2-ae69-4209-a8f4-901abe8a860b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 454,
"height": 113,
"rawWidth": 454,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "dc8809fe-b291-4bcd-a0ed-cebff8dcfeb5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 201,
"height": 89,
"platformSettings": {},
"subMetas": {
"old_btn_check": {
"ver": "1.0.4",
"uuid": "650c7ec5-6cd8-4a7e-91db-a0b1343086d6",
"rawTextureUuid": "dc8809fe-b291-4bcd-a0ed-cebff8dcfeb5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 201,
"height": 89,
"rawWidth": 201,
"rawHeight": 89,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7a7f137e-d523-4454-9232-f93a2a475acf",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 384,
"height": 151,
"platformSettings": {},
"subMetas": {
"old_btn_restart": {
"ver": "1.0.4",
"uuid": "bf3b1fe2-41ed-4842-9db3-29f3d7304593",
"rawTextureUuid": "7a7f137e-d523-4454-9232-f93a2a475acf",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 384,
"height": 151,
"rawWidth": 384,
"rawHeight": 151,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "b93b9aee-483b-45e1-89d6-b3d5e482b4ee",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 122,
"height": 95,
"platformSettings": {},
"subMetas": {
"old_icon_right": {
"ver": "1.0.4",
"uuid": "661ccc57-af7c-4bb8-b740-6b7f29f84b7a",
"rawTextureUuid": "b93b9aee-483b-45e1-89d6-b3d5e482b4ee",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 122,
"height": 95,
"rawWidth": 122,
"rawHeight": 95,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "936aa108-3147-4785-8b89-a84ce7eb5b3c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 407,
"height": 303,
"platformSettings": {},
"subMetas": {
"old_op_pic_bg_big": {
"ver": "1.0.4",
"uuid": "c7896147-2816-4fcc-a13d-d9a5c5ed48e6",
"rawTextureUuid": "936aa108-3147-4785-8b89-a84ce7eb5b3c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 9,
"trimY": 9,
"width": 389,
"height": 285,
"rawWidth": 407,
"rawHeight": 303,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c3650da3-110a-4680-b9aa-b474f5f6afc6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 407,
"height": 303,
"platformSettings": {},
"subMetas": {
"old_op_pic_bg_big_l": {
"ver": "1.0.4",
"uuid": "7ab8b8ad-24a7-49d9-b6e4-0732819ca9d5",
"rawTextureUuid": "c3650da3-110a-4680-b9aa-b474f5f6afc6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 407,
"height": 303,
"rawWidth": 407,
"rawHeight": 303,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "1e7f443e-a48b-4e9a-b0b7-9626067e2e73",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 693,
"height": 129,
"platformSettings": {},
"subMetas": {
"old_op_text_bg_big": {
"ver": "1.0.4",
"uuid": "3a8d36c2-5da6-4db3-a12f-9ecf09eae275",
"rawTextureUuid": "1e7f443e-a48b-4e9a-b0b7-9626067e2e73",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 9,
"trimY": 9,
"width": 675,
"height": 111,
"rawWidth": 693,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "eb5e00c5-a7d1-4229-b7ff-6ef298d1e341",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 693,
"height": 129,
"platformSettings": {},
"subMetas": {
"old_op_text_bg_big_l": {
"ver": "1.0.4",
"uuid": "60266da8-c9d2-4a4e-b071-3377c5bb7678",
"rawTextureUuid": "eb5e00c5-a7d1-4229-b7ff-6ef298d1e341",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 693,
"height": 129,
"rawWidth": 693,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4013e8e6-89b6-4009-ae14-82d8c0d4c206",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"platformSettings": {},
"subMetas": {
"old_option_pic_bg": {
"ver": "1.0.4",
"uuid": "880dfb40-3c9e-47b9-8dc8-89f461cf77fd",
"rawTextureUuid": "4013e8e6-89b6-4009-ae14-82d8c0d4c206",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 5,
"trimY": 5,
"width": 297,
"height": 217,
"rawWidth": 307,
"rawHeight": 227,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7c559c61-33e5-4aaa-a857-742510f020c3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"platformSettings": {},
"subMetas": {
"old_option_pic_bg_l": {
"ver": "1.0.4",
"uuid": "4521834b-37c2-41be-89fc-399039615867",
"rawTextureUuid": "7c559c61-33e5-4aaa-a857-742510f020c3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 307,
"height": 227,
"rawWidth": 307,
"rawHeight": 227,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2ab96811-4682-4ee2-b37d-24367dc50c57",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 604,
"height": 108,
"platformSettings": {},
"subMetas": {
"old_option_text_bg": {
"ver": "1.0.4",
"uuid": "1ae2b508-0ca6-41ab-b0cf-a8057c827641",
"rawTextureUuid": "2ab96811-4682-4ee2-b37d-24367dc50c57",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 5,
"trimY": 5,
"width": 594,
"height": 98,
"rawWidth": 604,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4be747a4-bfcc-4fe8-9042-2a530b3dfa1d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 604,
"height": 108,
"platformSettings": {},
"subMetas": {
"old_option_text_bg_l": {
"ver": "1.0.4",
"uuid": "f347f17e-d969-416c-940c-d0c308f1b04b",
"rawTextureUuid": "4be747a4-bfcc-4fe8-9042-2a530b3dfa1d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 604,
"height": 108,
"rawWidth": 604,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ceb1f68c-c977-4d96-9684-c93c92fcb78a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 702,
"height": 418,
"platformSettings": {},
"subMetas": {
"old_ques_pic_bg": {
"ver": "1.0.4",
"uuid": "7d246caa-ac10-4456-bec3-e9c951aaa187",
"rawTextureUuid": "ceb1f68c-c977-4d96-9684-c93c92fcb78a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 702,
"height": 418,
"rawWidth": 702,
"rawHeight": 418,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "85e63127-58d8-450d-958d-31b5051eacd3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 454,
"height": 113,
"platformSettings": {},
"subMetas": {
"old_try_again": {
"ver": "1.0.4",
"uuid": "f1e0a458-e66d-4117-a0af-71eb95828ab0",
"rawTextureUuid": "85e63127-58d8-450d-958d-31b5051eacd3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 454,
"height": 113,
"rawWidth": 454,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "40cbfffa-0736-4622-9f69-3d6b0a8be067",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"old_video_pause": {
"ver": "1.0.4",
"uuid": "711e8b24-ba5d-4ed4-a59e-8e131229934d",
"rawTextureUuid": "40cbfffa-0736-4622-9f69-3d6b0a8be067",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f2cdf783-a046-4d26-89c3-a928fcbcd7f3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"old_video_play": {
"ver": "1.0.4",
"uuid": "c68e0cd3-7e00-4478-8a33-923a7da0c85d",
"rawTextureUuid": "f2cdf783-a046-4d26-89c3-a928fcbcd7f3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "35d28d1e-f777-4c96-ba90-5426b6c2f89c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 390,
"height": 288,
"platformSettings": {},
"subMetas": {
"op_pic_bg_big": {
"ver": "1.0.4",
"uuid": "3ff1f387-ac22-46d9-bd53-141769f08d30",
"rawTextureUuid": "35d28d1e-f777-4c96-ba90-5426b6c2f89c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 390,
"height": 288,
"rawWidth": 390,
"rawHeight": 288,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "cebefe43-5d0a-43ee-a5b1-8ac467dbfc01",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 390,
"height": 288,
"platformSettings": {},
"subMetas": {
"op_pic_bg_big_l": {
"ver": "1.0.4",
"uuid": "01e53e3c-36e9-4bee-83bb-e31003aa4260",
"rawTextureUuid": "cebefe43-5d0a-43ee-a5b1-8ac467dbfc01",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 390,
"height": 288,
"rawWidth": 390,
"rawHeight": 288,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "b5b8dfb6-c008-40a3-9295-b013c93deb60",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 694,
"height": 129,
"platformSettings": {},
"subMetas": {
"op_text_bg_big": {
"ver": "1.0.4",
"uuid": "0d16f769-1f13-4dae-9bda-51e80879a40a",
"rawTextureUuid": "b5b8dfb6-c008-40a3-9295-b013c93deb60",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 694,
"height": 129,
"rawWidth": 694,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ad3b45f5-6849-4384-ad47-177f4e5bfa87",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 694,
"height": 129,
"platformSettings": {},
"subMetas": {
"op_text_bg_big_l": {
"ver": "1.0.4",
"uuid": "84500c29-0fd6-4f95-8056-62aa842df094",
"rawTextureUuid": "ad3b45f5-6849-4384-ad47-177f4e5bfa87",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 694,
"height": 129,
"rawWidth": 694,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "9d33b090-da1c-4b41-8a09-c9983ffac623",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"platformSettings": {},
"subMetas": {
"option_pic_bg": {
"ver": "1.0.4",
"uuid": "81316e6a-009c-4968-8c1e-cc529c19d378",
"rawTextureUuid": "9d33b090-da1c-4b41-8a09-c9983ffac623",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -1,
"trimX": 3,
"trimY": 3,
"width": 302,
"height": 223,
"rawWidth": 307,
"rawHeight": 227,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e5347858-4ad1-4307-99f1-bd5dee8fd127",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"platformSettings": {},
"subMetas": {
"option_pic_bg_l": {
"ver": "1.0.4",
"uuid": "427f53d5-26a2-4a62-9550-046eda5ab0b3",
"rawTextureUuid": "e5347858-4ad1-4307-99f1-bd5dee8fd127",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -1,
"trimX": 3,
"trimY": 3,
"width": 302,
"height": 223,
"rawWidth": 307,
"rawHeight": 227,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6ac4d858-b4ac-4cd4-9681-d4af1c4efd78",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 591,
"height": 88,
"platformSettings": {},
"subMetas": {
"option_text_bg": {
"ver": "1.0.4",
"uuid": "00a60f00-09bc-4f1c-9868-751adfab5756",
"rawTextureUuid": "6ac4d858-b4ac-4cd4-9681-d4af1c4efd78",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 591,
"height": 88,
"rawWidth": 591,
"rawHeight": 88,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a220cbbb-6da1-43bf-8449-711146182684",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 595,
"height": 92,
"platformSettings": {},
"subMetas": {
"option_text_bg_l": {
"ver": "1.0.4",
"uuid": "a9973dfe-a903-4151-8d72-cebf036cbb82",
"rawTextureUuid": "a220cbbb-6da1-43bf-8449-711146182684",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 595,
"height": 92,
"rawWidth": 595,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "26986447-6fd5-4f97-9445-60c060bb7c2a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 702,
"height": 418,
"platformSettings": {},
"subMetas": {
"ques_pic_bg": {
"ver": "1.0.4",
"uuid": "64fb74dd-77c0-43e8-9beb-3fd37c06d5ae",
"rawTextureUuid": "26986447-6fd5-4f97-9445-60c060bb7c2a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 702,
"height": 418,
"rawWidth": 702,
"rawHeight": 418,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "23aeb4fc-b5de-4229-a3c2-2464e7dc47f8",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 702,
"height": 418,
"platformSettings": {},
"subMetas": {
"ques_pic_bg_2": {
"ver": "1.0.4",
"uuid": "7f50894a-9768-4937-a070-cf33802b2509",
"rawTextureUuid": "23aeb4fc-b5de-4229-a3c2-2464e7dc47f8",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 702,
"height": 418,
"rawWidth": 702,
"rawHeight": 418,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ebf0021f-1714-474e-bc59-31f96370f55c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 62,
"height": 69,
"platformSettings": {},
"subMetas": {
"star": {
"ver": "1.0.4",
"uuid": "7fe7a583-8be5-4f05-8f51-1ca529a0437e",
"rawTextureUuid": "ebf0021f-1714-474e-bc59-31f96370f55c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 62,
"height": 69,
"rawWidth": 62,
"rawHeight": 69,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d582359e-924e-4ee9-9964-1fc4bb417e71",
"uuid": "4a570528-225e-4eb9-8a5c-ea566d8056f6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 61,
"height": 67,
"width": 62,
"height": 69,
"platformSettings": {},
"subMetas": {
"btn_right": {
"star_bg": {
"ver": "1.0.4",
"uuid": "e5a2dbaa-a677-4a32-90d7-a1b057d7fb59",
"rawTextureUuid": "d582359e-924e-4ee9-9964-1fc4bb417e71",
"uuid": "292fce96-423a-4bb1-b1cc-6f3a61e85600",
"rawTextureUuid": "4a570528-225e-4eb9-8a5c-ea566d8056f6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -0.5,
"offsetY": 0.5,
"offsetX": 0,
"offsetY": 1.5,
"trimX": 0,
"trimY": 0,
"width": 60,
"width": 62,
"height": 66,
"rawWidth": 61,
"rawHeight": 67,
"rawWidth": 62,
"rawHeight": 69,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "5a17b6d3-05d8-4da6-8dee-6105b64c0891",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 454,
"height": 113,
"platformSettings": {},
"subMetas": {
"tryagain": {
"ver": "1.0.4",
"uuid": "65a7119b-d7c2-4819-b8e0-55743b8d83f4",
"rawTextureUuid": "5a17b6d3-05d8-4da6-8dee-6105b64c0891",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 454,
"height": 113,
"rawWidth": 454,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7bf0715d-7cc6-462c-b64e-dbd926cf21b3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"video_pause": {
"ver": "1.0.4",
"uuid": "02d47d15-6f22-4161-bc6c-8c9761817861",
"rawTextureUuid": "7bf0715d-7cc6-462c-b64e-dbd926cf21b3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 5,
"width": 101,
"height": 116,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c15c4d75-d2fc-4169-8dfc-bd2f0a5a6f7b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"video_play": {
"ver": "1.0.4",
"uuid": "25c4ec7f-be26-425f-8cc7-cea28617fe38",
"rawTextureUuid": "c15c4d75-d2fc-4169-8dfc-bd2f0a5a6f7b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -0.5,
"trimX": 1,
"trimY": 4,
"width": 103,
"height": 119,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
......@@ -4,5 +4,6 @@
"name": "play",
"id": "9af72fd2-44a6-4131-8ea3-3e1b3fa22231",
"version": "2.4.5",
"isNew": false
"isNew": false,
"description": ""
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment