Commit 286ead45 authored by xytk's avatar xytk

提交代码

parent ddfebd10
......@@ -128,5 +128,8 @@
}
}
},
"defaultProject": "ng-template-generator"
}
"defaultProject": "ng-template-generator",
"cli": {
"analytics": "b18c7edc-6cb4-4a08-9472-b2e60e2519cb"
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -55,4 +55,4 @@
"tslint": "~5.18.0",
"typescript": "~3.7.5"
}
}
\ No newline at end of file
}
......@@ -24,7 +24,7 @@ import {AudioRecorderComponent} from './common/audio-recorder/audio-recorder.com
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { fas } from '@fortawesome/free-solid-svg-icons';
import { far } from '@fortawesome/free-regular-svg-icons';
import {UploadDragonBoneComponent} from "./common/upload-dragon-bone/upload-dragon-bone.component";
registerLocaleData(zh);
@NgModule({
......@@ -40,7 +40,7 @@ registerLocaleData(zh);
TimePipe,
UploadVideoComponent,
CustomHotZoneComponent,
UploadDragonBoneComponent,
PlayerContentWrapperComponent
],
......
<div class="position-relative">
<button nz-button (click)="setAnimaBtnClick()" style=" border-radius: 0.5rem; border: 1px solid #ddd;">
<i nz-icon nzType="tool" nzTheme="outline"></i>
{{btnName}}
</button>
<!--配置龙骨面板-->
<nz-modal [(nzVisible)]="animaPanelVisible" (nzAfterClose)="closePanel()" nzTitle="配置资源文件"
(nzOnCancel)="animaPanelCancel()" (nzOnOk)="animaPanelOk()" nzOkText="保存">
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 ske_json 文件: </span>
<nz-upload [nzShowUploadList]="false" nzAccept="application/json" [nzAction]="uploadUrl" [nzData]="uploadData"
(nzChange)="skeJsonHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isSkeJsonLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="skeJsonData && skeJsonData['name']" style="margin-left: 10px"><u> {{skeJsonData['name']}} </u></span>
</div>
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 tex_json 文件: </span>
<nz-upload [nzShowUploadList]="false" nzAccept="application/json" [nzAction]="uploadUrl" [nzData]="uploadData"
(nzChange)="texJsonHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isTexJsonLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="texJsonData && texJsonData['name']" style="margin-left: 10px"><u> {{texJsonData['name']}} </u></span>
</div>
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 tex_png 文件: </span>
<nz-upload [nzShowUploadList]="false" nzAccept="image/*" [nzAction]="uploadUrl" [nzData]="uploadData"
(nzChange)="texPngHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isTexPngLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="texPngData && texPngData['name']" style="margin-left: 10px"><u> {{texPngData['name']}} </u></span>
</div>
<div class="anima-upload-btn" *ngIf="animaNames && animaNames.length > 0">
提示:需包含动画: {{animaNames.toString()}}.
</div>
</nz-modal>
</div>
\ No newline at end of file
@import '../../style/common_mixin.css';
.p-image-uploader {
position: relative;
display: block;
width: 100%;
height: 0;
padding-bottom: 56.25%;
.p-box {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
border: 2px dashed #ddd;
border-radius: 0.5rem;
background-color: #fafafa;
text-align: center;
color: #aaa;
.p-upload-icon {
text-align: center;
margin: auto;
.anticon-upload {
color: #888;
font-size: 5rem;
}
.p-progress-bar {
position: relative;
width: 20rem;
height: 1.5rem;
border: 1px solid #ccc;
border-radius: 1rem;
.p-progress-bg {
background-color: #1890ff;
border-radius: 1rem;
height: 100%;
}
.p-progress-value {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-shadow: 0 0 4px #000;
color: white;
text-align: center;
font-size: 0.9rem;
line-height: 1.5rem;
}
}
}
.p-preview {
width: 100%;
height: 100%;
background-size: contain;
background-repeat: no-repeat;
background-position: 50% 50%;
//background-image: url("https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png");
}
}
.d-flex{
display: flex;
}
}
.p-btn-delete {
position: absolute;
right: -0.5rem;
top: -0.5rem;
width: 2rem;
height: 2rem;
border: 0.2rem solid white;
border-radius: 50%;
font-size: 1.2rem;
background-color: #fb781a;
color: white;
text-align: center;
}
.p-upload-progress-bg {
position: absolute;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
& .i-text {
position: absolute;
text-align: center;
color: white;
text-shadow: 0 0 2px rgba(0, 0, 0, .85);
}
& .i-bg {
position: absolute;
left: 0;
top: 0;
height: 100%;
background-color: #27b43f;
border-radius: 0.5rem;
}
}
.anima-upload-btn {
padding: 10px;
}
:host ::ng-deep .ant-upload {
display: block;
}
import {ApplicationRef, Component, EventEmitter, Input, OnChanges, OnDestroy, Output} from '@angular/core';
import { NzMessageService, UploadXHRArgs, UploadFile } from 'ng-zorro-antd';
@Component({
selector: 'app-upload-dragon-bone',
templateUrl: './upload-dragon-bone.component.html',
styleUrls: ['./upload-dragon-bone.component.scss']
})
export class UploadDragonBoneComponent implements OnDestroy, OnChanges {
uploading = false;
progress = 0;
@Input()
btnName = '配置龙骨动画';
@Input()
animaNames = [];
@Input()
skeJsonData = {};
@Input()
texJsonData = {};
@Input()
texPngData = {};
@Output()
save = new EventEmitter();
@Output()
refreshEmitter = new EventEmitter();
// @Input()
// picUrl;
// @Input()
// canDelete = false;
// @Output()
// imageUploaded = new EventEmitter();
// @Output()
// imageUploadFailure = new EventEmitter();
// @Output()
// delete = new EventEmitter();
// @Input()
// picItem = null;
// @Input()
// iconSize = 2;
// @Input()
// TIP = 'Click here to upload image';
// @Input()
// disableUpload = false;
uploadUrl;
uploadData;
animaPanelVisible = false;
isSkeJsonLoading = false;
isTexJsonLoading = false;
isTexPngLoading = false;
constructor(private appRef: ApplicationRef, private nzMessageService: NzMessageService) {
this.uploadUrl = (<any> window).courseware.uploadUrl();
this.uploadData = (<any> window).courseware.uploadData();
window['air'].getUploadCallback = (url, data) => {
this.uploadUrl = url;
this.uploadData = data;
};
}
ngOnChanges() {
}
setAnimaBtnClick() {
this.animaPanelVisible = true;
this.refresh();
}
animaPanelCancel() {
this.animaPanelVisible = false;
this.refresh();
}
animaPanelOk() {
this.sendItemDragonBoneData();
this.animaPanelVisible = false;
this.refresh();
}
sendItemDragonBoneData() {
const data = {};
data['skeJsonData'] = this.skeJsonData;
data['texJsonData'] = this.texJsonData;
data['texPngData'] = this.texPngData;
this.save.emit(data);
}
skeJsonHandleChange(e) {
console.log('e: ', e);
switch (e.type) {
case 'start':
this.isSkeJsonLoading = true;
break;
case 'success':
this.skeJsonData['url'] = e.file.response.url;
this.skeJsonData['name'] = e.file.name;
this.nzMessageService.success('上传成功');
this.isSkeJsonLoading = false;
break;
case 'progress':
break;
}
}
texJsonHandleChange(e) {
console.log('e: ', e);
switch (e.type) {
case 'start':
this.isTexJsonLoading = true;
break;
case 'success':
this.texJsonData['url'] = e.file.response.url;
this.texJsonData['name'] = e.file.name;
this.nzMessageService.success('上传成功');
this.isTexJsonLoading = false;
break;
case 'progress':
break;
}
}
texPngHandleChange(e) {
console.log('e: ', e);
switch (e.type) {
case 'start':
this.isTexPngLoading = true;
break;
case 'success':
this.texPngData['url'] = e.file.response.url;
this.texPngData['name'] = e.file.name;
this.nzMessageService.success('上传成功');
this.isTexPngLoading = false;
break;
case 'progress':
break;
}
}
/**
* 刷新 渲染页面
*/
refresh() {
// this.refreshEmitter.emit();
setTimeout(() => {
this.appRef.tick();
}, 1);
}
closePanel() {
console.log(' in closePanel ');
this.refresh();
}
ngOnDestroy() {
}
}
......@@ -2,35 +2,78 @@
<div style="padding: 10px;">
<div style="width: 300px; margin-top: 15px;">
<span>标题文本: </span>
<input type="text" nz-input [(ngModel)]="item.bt_text" (blur)="save()">
</div>
<div style="margin-top: 5px">
<span>标题音频: </span>
<app-audio-recorder
[audioUrl]="item.bt_audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'bt_audio_url')"
></app-audio-recorder>
</div>
<div style="margin-top: 5px">
<span style="height: 30px; font-size: 18px;">上传骨骼动画:</span>
<app-upload-dragon-bone [btnName]="[['配置骨骼动画']]" [animaNames]="[[['normal']]]"
[skeJsonData]=item.dragonBone.skeJsonData [texJsonData]=item.dragonBone.texJsonData
[texPngData]=item.dragonBone.texPngData (save)="saveAnima($event, item.dragonBone)"
(refreshEmitter)="refresh()">
</app-upload-dragon-bone>
<br/>
<div style="width: 300px; margin-top: 15px;">
<span>骨骼动画名称(armatureName): </span>
<input type="text" nz-input [(ngModel)]="item.dragonBone_armatureName" (blur)="save()">
<span>骨骼动画动作名称(animationName): </span>
<input type="text" nz-input [(ngModel)]="item.dragonBone_animationName" (blur)="save()">
</div>
<br/>
<span style="height: 30px; font-size: 18px;">上传骨骼动画音频:</span>
<app-audio-recorder
[audioUrl]="item.dragonBone_audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'dragonBone_audio_url')"
></app-audio-recorder>
</div>
<div style="width: 300px;" align='center'>
<span>1: </span>
<span>A: </span>
<app-upload-image-with-preview
[picUrl]="item.pic_url"
(imageUploaded)="onImageUploadSuccess($event, 'pic_url')">
[picUrl]="item.pic_A_url"
(imageUploaded)="onImageUploadSuccess($event, 'pic_A_url')">
</app-upload-image-with-preview>
<br/>
<span style="height: 30px; font-size: 18px;">上传图A音频:</span>
<app-audio-recorder
[audioUrl]="item.pic_A_audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'pic_A_audio_url')"
></app-audio-recorder>
</div>
<div style="width: 300px; margin-top: 5px;" align='center'>
<span>2: </span>
<span>C: </span>
<app-upload-image-with-preview
[picUrl]="item.pic_url_2"
(imageUploaded)="onImageUploadSuccess($event, 'pic_url_2')">
[picUrl]="item.pic_C_url"
(imageUploaded)="onImageUploadSuccess($event, 'pic_C_url')">
</app-upload-image-with-preview>
<br/>
<span style="height: 30px; font-size: 18px;">上传图C音频:</span>
<app-audio-recorder
[audioUrl]="item.pic_C_audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'pic_C_audio_url')"
></app-audio-recorder>
</div>
<div style="width: 300px; margin-top: 15px;">
<span>文本: </span>
<input type="text" nz-input [(ngModel)]="item.text" (blur)="save()">
</div>
<div style="margin-top: 5px">
<span>音频: </span>
<span>底部文本: </span>
<input type="text" nz-input [(ngModel)]="item.bottom_text" (blur)="save()">
<br/>
<span>底部文本音频: </span>
<app-audio-recorder
[audioUrl]="item.audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'audio_url')"
[audioUrl]="item.bottom_audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'bottom_audio_url')"
></app-audio-recorder>
</div>
</div>
</div>
......@@ -10,7 +10,7 @@ import { JsonPipe } from '@angular/common';
export class FormComponent implements OnInit, OnChanges, OnDestroy {
// 储存数据用
saveKey = "test_001";
saveKey = "xytk_cs_001";
// 储存对象
item;
......@@ -35,7 +35,24 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
ngOnInit() {
this.item = {};
this.item = {
bt_text:"",
bt_audio_url:"",
dragonBone:{
"skeJsonData": { "url": "" },
"texJsonData": { "url": "" },
"texPngData": { "url": "" },
},
dragonBone_armatureName:"",
dragonBone_animationName:"",
dragonBone_audio_url:"",
pic_A_url:"",
pic_A_audio_url:"",
pic_C_url:"",
pic_C_audio_url:"",
bottom_text:"",
bottom_audio_url:""
};
// 获取存储的数据
(<any>window).courseware.getData((data) => {
......@@ -62,7 +79,13 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
}
saveAnima(event, group) {
group.skeJsonData = event.skeJsonData;
group.texJsonData = event.texJsonData;
group.texPngData = event.texPngData;
this.save();
}
/**
* 储存图片数据
* @param e
......
This diff is collapsed.
{
"ver": "1.0.1",
"uuid": "716bf20c-5e8e-4b11-80d7-3cdeb16f947b",
"subMetas": {}
}
\ No newline at end of file
{"name":"sb_boy","imagePath":"sb_boy_tex.png","SubTexture":[{"name":"课本第一页分拆-小男孩/图层_14","x":1,"height":188,"y":1,"width":119},{"name":"课本第一页分拆-小男孩/图层_11","x":122,"height":102,"y":1,"width":71},{"name":"课本第一页分拆-小男孩/图层_12","x":1,"height":128,"y":278,"width":142},{"name":"课本第一页分拆-小男孩/图层_10","x":145,"height":85,"y":278,"width":84},{"name":"课本第一页分拆-小男孩/图层_13","x":122,"height":36,"y":105,"width":48},{"name":"课本第一页分拆-小男孩/morningbird","x":1,"height":85,"y":191,"width":234}],"height":512,"width":256}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "579b28fe-0e39-4fd3-84e8-e5910ee77031",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "239231c8-ddfe-4c11-aaf3-56ea16476e1d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 256,
"height": 512,
"platformSettings": {},
"subMetas": {
"sb_boy_tex": {
"ver": "1.0.4",
"uuid": "348ea295-8d00-4381-8a47-d11f72ee1d3b",
"rawTextureUuid": "239231c8-ddfe-4c11-aaf3-56ea16476e1d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -10,
"offsetY": 52.5,
"trimX": 1,
"trimY": 1,
"width": 234,
"height": 405,
"rawWidth": 256,
"rawHeight": 512,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
This diff is collapsed.
const {ccclass, property} = cc._decorator;
@ccclass
export default class NewClass extends cc.Component {
// onLoad () {}
start () {
this.scheduleOnce(()=>{
this.flyIn();
},0.5);
}
// update (dt) {}
/**
* 飞入
*/
flyIn(){
let tween = cc.tween().to(1,{y:0},{easing:"quadOut"});
cc.tween(this.node).then(tween).start();
}
}
{
"ver": "1.0.8",
"uuid": "4182287e-ec19-42b9-bcfb-29697aba860f",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
......@@ -12,6 +12,10 @@ cc.Class({
extends: cc.Component,
properties: {
dragonBonesNode:cc.Node,
pic_a_sprite:cc.Sprite,
pic_c_sprite:cc.Sprite
},
// 生命周期 onLoad
......@@ -65,22 +69,29 @@ cc.Class({
if (window && window.courseware) {
getData = window.courseware.getData;
}
this.dragonBonesNode.on(cc.Node.EventType.TOUCH_START,this.playDragonAnimation,this)
getData((data) => {
console.log('data:', data);
cc.log('data:', data);
this.data = data || this.getDefaultData();
this.data = JSON.parse(JSON.stringify(this.data))
this.preloadItem()
})
},
playDragonAnimation(){
let ad = this.dragonBonesNode.getComponent(dragonBones.ArmatureDisplay);
if(ad){
ad.playAnimation(this.data.dragonBone_animationName, -1);
}
},
getData(cb) {
cb(this.getDefaultData());
},
getDefaultData() {
const dataJson = '{"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"}'
const dataJson = '{"bt_text":"11111","bt_audio_url":"http://staging-teach.cdn.ireadabc.com/b0c23eb327ec13212d09516a1a8a49ec.mp3","dragonBone":{"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/363ea3636888e4f70037d69794956daa.json","name":"sb_boy_ske.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/ecc48e23d55b1af8eb40d997dc573791.json","name":"sb_boy_tex.json"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/2d668f8049bc98c0e026921ef316a0fd.png","name":"sb_boy_tex.png"}},"dragonBone_audio_url":"http://staging-teach.cdn.ireadabc.com/b0c23eb327ec13212d09516a1a8a49ec.mp3","pic_A_url":"http://staging-teach.cdn.ireadabc.com/ed0e074ce7c52a469cc78c13a58eb09d.png","pic_C_url":"http://staging-teach.cdn.ireadabc.com/b2423375f6f8bfc4e24568c36b23947d.png","bottom_text":"底部的文本","bottom_audio_url":"http://staging-teach.cdn.ireadabc.com/b0c23eb327ec13212d09516a1a8a49ec.mp3","pic_A_audio_url":"http://staging-teach.cdn.ireadabc.com/b0c23eb327ec13212d09516a1a8a49ec.mp3","pic_C_audio_url":"http://staging-teach.cdn.ireadabc.com/b0c23eb327ec13212d09516a1a8a49ec.mp3","dragonBone_animationName":"unit1_boy_jump","dragonBone_armatureName":"Armature"}'
const data = JSON.parse(dataJson);
return data;
},
......@@ -94,14 +105,17 @@ cc.Class({
addPreloadImage() {
this._imageResList.push({ url: this.data.pic_url });
this._imageResList.push({ url: this.data.pic_url_2 });
this._imageResList.push({ url: this.data.pic_A_url });
this._imageResList.push({ url: this.data.pic_C_url });
this._imageResList.push({ url: this.data.dragonBone.texPngData.url });
},
addPreloadAudio() {
this._audioResList.push({ url: this.data.audio_url });
this._audioResList.push({ url: this.data.bt_audio_url });
this._audioResList.push({ url: this.data.dragonBone_audio_url });
this._audioResList.push({ url: this.data.pic_A_audio_url });
this._audioResList.push({ url: this.data.pic_C_audio_url });
this._audioResList.push({ url: this.data.bottom_audio_url });
},
addPreloadAnima() {
......@@ -128,6 +142,9 @@ cc.Class({
this.initAudio();
this.initView();
// this.initListener();
},
_cantouch: null,
......@@ -152,11 +169,49 @@ cc.Class({
initView() {
this.initBg();
this.initPic();
this.initBtn();
// this.initPic();
//this.initBtn();
this.initIcon();
this.loadDragonBones();
this.getSpriteFrimeByUrl(this.data.pic_A_url,(spriteFrame)=>{
this.pic_a_sprite.spriteFrame = spriteFrame;
});
this.getSpriteFrimeByUrl(this.data.pic_C_url,(spriteFrame)=>{
this.pic_c_sprite.spriteFrame = spriteFrame;
});
},
loadDragonBones(){
animNode = this.dragonBonesNode;
var dragonDisplay = animNode.addComponent(dragonBones.ArmatureDisplay);
var image = this.data.dragonBone.texPngData.url;
var ske = this.data.dragonBone.skeJsonData.url;
var atlas = this.data.dragonBone.texJsonData.url;
var item = this.data;
cc.loader.load(image, (error, texture) => {
cc.loader.load({ url: atlas, type: 'txt' }, (error, atlasJson) => {
cc.loader.load({ url: ske, type: 'txt' }, (error, dragonBonesJson) => {
var atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = atlasJson;
atlas.texture = texture;
var asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = dragonBonesJson;
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
dragonDisplay.armatureName = item.dragonBone_armatureName;
// dragonDisplay.playAnimation(item.dragonBone_animationName, 0);
});
});
});
},
initBg() {
const bgNode = cc.find('Canvas/bg');
bgNode.scale = this._mapScaleMax;
......@@ -291,29 +346,6 @@ cc.Class({
},
// update (dt) {},
// ------------------------------------------------
getSprNode(resName) {
const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
......
const {ccclass, property} = cc._decorator;
@ccclass
export default class NewClass extends cc.Component {
@property(cc.Label)
titleTextLabel: cc.Label = null;
@property(cc.AudioSource)
audioSource:cc.AudioSource = null;
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
start () {
this.audioSource.node.on(cc.Node.EventType.TOUCH_START,this.playSe,this);
}
/**
* 设置标题文本
* @param text
*/
setTittleText(text:string){
this.titleTextLabel.string = text?text:"";
}
playSe(){
this.audioSource.play();
}
// update (dt) {}
}
{
"ver": "1.0.8",
"uuid": "83c44bb4-aedf-468a-89de-9d829717d4da",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e1b4d971-9876-4832-803a-5a321964a78b",
"uuid": "2af466a7-ab45-4fcd-8851-ea67a1703a3c",
"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": "7cd3ffbe-7256-4c9c-a583-e057280402b2",
"rawTextureUuid": "2af466a7-ab45-4fcd-8851-ea67a1703a3c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......
{
"ver": "2.3.5",
"uuid": "608952ac-2162-4870-a4dd-bd704a039e1e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 25,
"height": 25,
"platformSettings": {},
"subMetas": {
"doc_01": {
"ver": "1.0.4",
"uuid": "2b16185e-b041-4777-9361-8d6f4ed80f42",
"rawTextureUuid": "608952ac-2162-4870-a4dd-bd704a039e1e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 25,
"height": 25,
"rawWidth": 25,
"rawHeight": 25,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "bef08bb0-8c20-466d-84cb-924cacc866d8",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 37,
"height": 37,
"platformSettings": {},
"subMetas": {
"doc_02": {
"ver": "1.0.4",
"uuid": "df13ca56-0b84-446c-b23d-6a087788a3bb",
"rawTextureUuid": "bef08bb0-8c20-466d-84cb-924cacc866d8",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 37,
"height": 37,
"rawWidth": 37,
"rawHeight": 37,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "60628b34-cfe1-4a08-964c-84b9abe32176",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 52,
"height": 52,
"platformSettings": {},
"subMetas": {
"doc_03": {
"ver": "1.0.4",
"uuid": "6ac58355-4763-43f4-87d1-2f27c8b0e199",
"rawTextureUuid": "60628b34-cfe1-4a08-964c-84b9abe32176",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 52,
"height": 52,
"rawWidth": 52,
"rawHeight": 52,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "48d853a0-77c4-422d-8673-00325fe7dfdf",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 52,
"height": 52,
"platformSettings": {},
"subMetas": {
"doc_04": {
"ver": "1.0.4",
"uuid": "5798d041-ec18-4f1e-a4e4-b816dea7dd2b",
"rawTextureUuid": "48d853a0-77c4-422d-8673-00325fe7dfdf",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 52,
"height": 52,
"rawWidth": 52,
"rawHeight": 52,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "32f9235f-59df-4e38-8f7f-793a7a43ffa5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1108,
"height": 461,
"platformSettings": {},
"subMetas": {
"middle_bg": {
"ver": "1.0.4",
"uuid": "5ddd17cf-f2ab-4dfa-a25d-981cba4e0120",
"rawTextureUuid": "32f9235f-59df-4e38-8f7f-793a7a43ffa5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1108,
"height": 461,
"rawWidth": 1108,
"rawHeight": 461,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "fae6d3be-d73d-42a5-982e-6a710c460b56",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 294,
"height": 323,
"platformSettings": {},
"subMetas": {
"pic_a": {
"ver": "1.0.4",
"uuid": "e9553171-f667-47c8-bd26-2a4298a0f582",
"rawTextureUuid": "fae6d3be-d73d-42a5-982e-6a710c460b56",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 294,
"height": 323,
"rawWidth": 294,
"rawHeight": 323,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "8374f768-c50f-4bfb-a3d3-9324784842ea",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 278,
"height": 316,
"platformSettings": {},
"subMetas": {
"pic_c": {
"ver": "1.0.4",
"uuid": "3c9ec3cd-ac94-4a15-a23a-e7f4bc579203",
"rawTextureUuid": "8374f768-c50f-4bfb-a3d3-9324784842ea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 278,
"height": 316,
"rawWidth": 278,
"rawHeight": 316,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "68e0ec1c-8d87-4061-9915-005522ab1df9",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 445,
"height": 104,
"platformSettings": {},
"subMetas": {
"title_bg": {
"ver": "1.0.4",
"uuid": "6030d658-93ae-437c-a2a3-1fbd8084c715",
"rawTextureUuid": "68e0ec1c-8d87-4061-9915-005522ab1df9",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 445,
"height": 104,
"rawWidth": 445,
"rawHeight": 104,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ 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