From f6eba66367bcd087e607a23cc068e36929687318 Mon Sep 17 00:00:00 2001 From: ljx0517 <ljx0517@gmail.com> Date: Sat, 8 Aug 2020 20:18:47 +0800 Subject: [PATCH] 1 --- angular.json | 5 +- package.json | 4 + src/app/form/form.component.css | 8 - src/app/form/form.component.html | 108 ++++- src/app/form/form.component.scss | 28 ++ src/app/form/form.component.ts | 139 +++++- src/app/play/play.component.css | 19 - src/app/play/play.component.html | 32 +- src/app/play/play.component.scss | 103 +++++ src/app/play/play.component.ts | 756 ++++++------------------------- src/app/style/mixin.scss | 18 + src/assets/common_bg.jpg | Bin 0 -> 57206 bytes src/assets/right.mp3 | Bin 0 -> 12525 bytes src/assets/wrong.mp3 | Bin 0 -> 7362 bytes src/styles.css | 1 - src/styles.scss | 51 +++ 16 files changed, 566 insertions(+), 706 deletions(-) delete mode 100644 src/app/form/form.component.css create mode 100644 src/app/form/form.component.scss delete mode 100644 src/app/play/play.component.css create mode 100644 src/app/play/play.component.scss create mode 100644 src/app/style/mixin.scss create mode 100755 src/assets/common_bg.jpg create mode 100644 src/assets/right.mp3 create mode 100644 src/assets/wrong.mp3 delete mode 100644 src/styles.css create mode 100644 src/styles.scss diff --git a/angular.json b/angular.json index 5952480..c46936b 100644 --- a/angular.json +++ b/angular.json @@ -30,7 +30,10 @@ ], "styles": [ "./node_modules/ng-zorro-antd/ng-zorro-antd.min.css", - "src/styles.css" + "./node_modules/font-awesome/css/font-awesome.css", + "./node_modules/bootstrap/dist/css/bootstrap.min.css", + "./node_modules/animate.css/animate.min.css", + "src/styles.scss" ], "scripts": [] }, diff --git a/package.json b/package.json index c9142ed..7305e60 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,11 @@ "@fortawesome/free-solid-svg-icons": "^5.12.1", "@tweenjs/tween.js": "~18.5.0", "ali-oss": "^6.5.1", + "animate.css": "3.7.0", + "bootstrap": "4.1.1", "compressing": "^1.5.0", + "font-awesome": "4.7.0", + "lodash": "4.17.10", "ng-zorro-antd": "^8.5.2", "rxjs": "~6.5.4", "spark-md5": "^3.0.0", diff --git a/src/app/form/form.component.css b/src/app/form/form.component.css deleted file mode 100644 index 41f7757..0000000 --- a/src/app/form/form.component.css +++ /dev/null @@ -1,8 +0,0 @@ -@import '../style/common_mixin.css'; - - -.model-content { - width: 100%; - height: 100%; - -} diff --git a/src/app/form/form.component.html b/src/app/form/form.component.html index a51aa6b..8fbebe1 100644 --- a/src/app/form/form.component.html +++ b/src/app/form/form.component.html @@ -1,25 +1,87 @@ - -<div class="model-content"> - - - <div style="position: absolute; left: 200px; top: 100px; width: 800px;"> - - <input type="text" nz-input [(ngModel)]="item.text" (blur)="save()"> - +<nz-form-item> + <nz-form-label [nzSpan]="4">Vocabulary</nz-form-label> + <nz-form-control [nzSpan]="8"> <app-upload-image-with-preview - [picUrl]="item.pic_url" - (imageUploaded)="onImageUploadSuccess($event, 'pic_url')" + [picUrl]="item.contentObj.pic_id" + (imageUploaded)="onHandleQuestionImage($event)" ></app-upload-image-with-preview> - - <app-audio-recorder - [audioUrl]="item.audio_url" - (audioUploaded)="onAudioUploadSuccess($event, 'audio_url')" - ></app-audio-recorder> - <app-custom-hot-zone></app-custom-hot-zone> - <app-upload-video></app-upload-video> - <app-lesson-title-config></app-lesson-title-config> - </div> - - -</div> - \ No newline at end of file + <input type="text" nz-input placeholder="Please input title" + [(ngModel)]="item.contentObj.title" (blur)="updateQuestionTitle()"> + </nz-form-control> +</nz-form-item> +<nz-form-item> + <nz-form-label [nzSpan]="4">Option</nz-form-label> + <nz-form-control [nzSpan]="20"> + <button + nz-button + nzType="default" + (click)="addNewOptionItem()" + [disabled]="options.length >= 4" + > + <i class="anticon anticon-plus-circle-o"></i> + Add + </button> + <div class="opt-container"> + <div + class="opt-wrap" + *ngFor="let item of options; let i = index" + > + <div class="tool-bar"> + <label nz-checkbox [ngModel]="item.right" (click)="setRightAnswer(i)" class="right-answer"> + Right + </label> + <div class="button-group"> + <button + nz-button + nzType="primary" + nzSize="small" + nzShape="circle" + style="margin-right: 1rem;" + (click)="onHandleSwitchContent(item)" + > + <i class="anticon anticon-retweet"></i> + </button> + <nz-dropdown [nzTrigger]="'click'"> + <button + nz-button + nzType="primary" + nzSize="small" + nzShape="circle" + nz-dropdown + > + <i class="anticon anticon-setting"></i> + </button> + <ul nz-menu> + <li nz-menu-item (click)="onMovePage(i, -1)" [class.disabled]="i < 1"> + <i class="anticon anticon-arrow-up"></i> + Move Up + </li> + <li nz-menu-item (click)="onMovePage(i, 1)" [class.disabled]="i + 1 >= options.length"> + <i class="anticon anticon-arrow-down"></i> + Move Down + </li> + <li nz-menu-item (click)="onDeleteCoursewareItem(i)"> + <i class="anticon anticon-delete"></i> + Delete + </li> + </ul> + </nz-dropdown> + </div> + </div> + <div class="content-editor"> + <input *ngIf="item.type === OPTION_TYPE.TEXT" type="text" nz-input [(ngModel)]="item.text" + placeholder="Please input title" (blur)="updateOptionItemText(i)"> + <app-upload-image-with-preview + *ngIf="item.type === OPTION_TYPE.PIC" + [picUrl]="item.pic_id" + (imageUploaded)="onHandleOptionItemImage($event, i)" + ></app-upload-image-with-preview> + <app-audio-recorder *ngIf="item.type === OPTION_TYPE.AUDIO" + [audioUrl]="item.audio_id" + (audioUploaded)="onHandleOptionItemAudio($event, i)"> + </app-audio-recorder> + </div> + </div> + </div> + </nz-form-control> +</nz-form-item> diff --git a/src/app/form/form.component.scss b/src/app/form/form.component.scss new file mode 100644 index 0000000..ba5a8d5 --- /dev/null +++ b/src/app/form/form.component.scss @@ -0,0 +1,28 @@ +.opt-container { + width: 100%; + display: flex; + flex-wrap: wrap; +.opt-wrap { + margin: 0 1rem 1rem 0; + display: flex; + flex-direction: column; + height: 14rem; + width: 20rem; + border: 2px dashed #ddd; + border-radius: 0.5rem; + padding: 0.8rem; +.tool-bar { + display: flex; + justify-content: space-between; + align-items: center; +} +.content-editor { + height: 100%; +} +} +} + +.disabled { + pointer-events: none; + opacity: 0.6; +} diff --git a/src/app/form/form.component.ts b/src/app/form/form.component.ts index 8bf084e..d566857 100644 --- a/src/app/form/form.component.ts +++ b/src/app/form/form.component.ts @@ -1,36 +1,53 @@ import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef} from '@angular/core'; - +import * as _ from 'lodash'; +import { NzModalService } from 'ng-zorro-antd'; @Component({ selector: 'app-form', templateUrl: './form.component.html', - styleUrls: ['./form.component.css'] + styleUrls: ['./form.component.scss'] }) export class FormComponent implements OnInit, OnChanges, OnDestroy { // å‚¨å˜æ•°æ®ç”¨ - saveKey = "test_0011"; + saveKey = 'ww_question'; // 储å˜å¯¹è±¡ item; + originContent; + options = []; + OPTION_TYPE = {TEXT: 1, PIC: 2, AUDIO: 3}; - constructor(private appRef: ApplicationRef,private changeDetectorRef: ChangeDetectorRef) { + constructor(private appRef: ApplicationRef, + private modalService: NzModalService, + private changeDetectorRef: ChangeDetectorRef) { } ngOnInit() { - this.item = {}; + this.item = { + contentObj: {} + }; // 获å–å˜å‚¨çš„æ•°æ® - (<any> window).courseware.getData((data) => { + (window as any).courseware.getData((data) => { if (data) { this.item = data; + this.originContent = {...this.item.contentObj}; + this.options = _.get(this.item.contentObj, 'options', []); + // Ken 2019-04-14 17:41 把showPic, showText的逻辑æ¢ä¸ºtype + _.forEach(this.options, o => { + if (_.isUndefined(o.type)) { + o.type = o.showPic ? this.OPTION_TYPE.PIC : this.OPTION_TYPE.TEXT; + } + }); } + this.init(); this.changeDetectorRef.markForCheck(); this.changeDetectorRef.detectChanges(); @@ -54,25 +71,18 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { } - /** - * 储å˜å›¾ç‰‡æ•°æ® - * @param e - */ - onImageUploadSuccess(e, key) { - - this.item[key] = e.url; - this.save(); - } + // onImageUploadSuccess(e, key) { + // + // this.item[key] = e.url; + // this.save(); + // } - /** - * 储å˜éŸ³é¢‘æ•°æ® - * @param e - */ - onAudioUploadSuccess(e, key) { - this.item[key] = e.url; - this.save(); - } + // onAudioUploadSuccess(e, key) { + // + // this.item[key] = e.url; + // this.save(); + // } @@ -80,7 +90,7 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { * å‚¨å˜æ•°æ® */ save() { - (<any> window).courseware.setData(this.item, null, this.saveKey); + (window as any).courseware.setData(this.item, null, this.saveKey); this.refresh(); } @@ -93,5 +103,86 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { }, 1); } + + onHandleQuestionImage(e) { + this.item.contentObj.pic_id = e.url; + this.save(); + } + + updateQuestionTitle() { + this.save(); + } + + onHandleOptionItemImage(e, index) { + this.options[index].pic_id = e.url; + this.item.contentObj.options = this.options; + this.save(); + } + + onHandleOptionItemAudio(e, index) { + this.options[index].audio_id = e.url; + this.item.contentObj.options = this.options; + this.save(); + } + + updateOptionItemText(index) { + this.item.contentObj.options = this.options; + this.save(); + } + + setRightAnswer(index) { + this.options[index].right = !this.options[index].right; + this.item.contentObj.options = this.options; + this.save(); + } + + addNewOptionItem() { + const content = { + text: '', + pic_id: null, + right: false, + type: this.OPTION_TYPE.TEXT, + }; + this.options.push(content); + } + + onHandleSwitchContent(item) { + switch (item.type) { + case this.OPTION_TYPE.TEXT: + item.type = this.OPTION_TYPE.PIC; + break; + case this.OPTION_TYPE.PIC: + item.type = this.OPTION_TYPE.AUDIO; + break; + case this.OPTION_TYPE.AUDIO: + item.type = this.OPTION_TYPE.TEXT; + break; + } + this.item.contentObj.options = this.options; + this.save(); + } + onMovePage(index, direction) { + const temp = this.options[index + direction]; + this.options[index + direction] = this.options[index]; + this.options[index] = temp; + this.options = [...this.options]; + this.item.contentObj.options = this.options; + this.save(); + } + + onDeleteCoursewareItem(index) { + this.modalService.confirm({ + nzTitle: 'Are you sure delete this?', + nzOkText: 'Yes', + nzOkType: 'danger', + nzCancelText: 'No', + nzOnOk: () => { + this.options.splice(index, 1); + this.item.contentObj.options = this.options; + this.save(); + }, + }); + } + } diff --git a/src/app/play/play.component.css b/src/app/play/play.component.css deleted file mode 100644 index bbda495..0000000 --- a/src/app/play/play.component.css +++ /dev/null @@ -1,19 +0,0 @@ -.game-container { - width: 100%; - height: 100%; - background: #ffffff; - background-size: cover; -} - -#canvas { - -} - - - -@font-face -{ - font-family: 'BRLNSDB'; - src: url("../../assets/font/BRLNSDB.TTF") ; -} - diff --git a/src/app/play/play.component.html b/src/app/play/play.component.html index 960fb49..467a975 100644 --- a/src/app/play/play.component.html +++ b/src/app/play/play.component.html @@ -1,3 +1,31 @@ -<div class="game-container" #wrap> - <canvas id="canvas" #canvas></canvas> +<div class="question-player"> + <div class="top-part"> + <img + *ngIf="data.contentObj.pic_id" + [src]="data.contentObj.pic_id " + alt="cover" + (dragstart)="false;$event.preventDefault();" + (click)="onHandleZoomIn()" + [@zoom]="zoomIn ? 'in' : 'none'" + /> + <div class="title">{{data.contentObj.title}}</div> + </div> + <div class="opt-container"> + <div + class="opt-wrap" + *ngFor="let item of options; let i = index" + [@tip-border]="item.state || 'none'" + (click)="handleAnimation(item)" + > + <span class="opt-circle" [@tip-circle]="item.state || 'none'">{{transCharCode(i)}}</span> + <div class="text" *ngIf="item.type === OPTION_TYPE.TEXT">{{item.text}}</div> + <div class="audio" style="text-align: center" *ngIf="item.type === OPTION_TYPE.AUDIO" (click)="playAudio(item, $event)"> + <i class="anticon anticon-sound"></i> + </div> + <img *ngIf="item.type === OPTION_TYPE.PIC" [src]="item.pic_id" alt="" + (dragstart)="false;$event.preventDefault();"/> + </div> + </div> + <!--<img src="/assets/question/left.png" alt="ufo" class="left-ufo" (dragstart)="false;$event.preventDefault();">--> + <!--<img src="/assets/question/right.png" alt="ufo" class="right-ufo" (dragstart)="false;$event.preventDefault();">--> </div> diff --git a/src/app/play/play.component.scss b/src/app/play/play.component.scss new file mode 100644 index 0000000..fa89670 --- /dev/null +++ b/src/app/play/play.component.scss @@ -0,0 +1,103 @@ +.question-player { + display: flex; + flex-direction: column; + align-items: center; + height: 100%; + width: 100%; + background-image: url("../../assets/common_bg.jpg"); + background-size: cover; + background-repeat: no-repeat; + +.top-part { + height: 35%; + min-width: 60%; + max-width: 90%; + display: flex; + justify-content: center; + align-items: center; + +img { +//width: 40%; + height: 60%; + margin-right: 1.5rem; + object-fit: contain; +} +.title { + font-size: 2.5rem; + color: #ffb00f; + background-color: white; + padding: 0.5rem 1rem; + border-radius: 1rem; +} +} +.opt-container { + height: 55%; + width: 80%; + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + +.opt-wrap { + width: 30%; + height: 45%; + position: relative; + background-color: #ffffff; + margin: 1rem; + border-radius: 0.8rem; + display: flex; + justify-content: center; + align-items: center; + border: 0.3rem solid #ffffff; + +.opt-circle { + width: 2.5rem; + height: 2.5rem; + background-color: #ffffff; + position: absolute; + border-radius: 50%; + left: -1rem; + top: -1rem; + text-align: center; + line-height: 2.5rem; + font-size: 24px; + font-weight: 500; +} + +img { + width: 100%; + height: 100%; + object-fit: contain; +} + +.text { + font-size: 28px; + font-weight: 500; +} + +.audio { + color: white; + background-color: #00BCD4; + border-radius: 5px; + font-size: 5vh; + font-weight: 500; + width: 13vh; + cursor: pointer; +} +} +} +.left-ufo { + width: 10%; + object-fit: contain; + position: absolute; + left: 15vh; + bottom: 20vh; +} +.right-ufo { + width: 10%; + object-fit: contain; + position: absolute; + right: 15vh; + bottom: 20vh; +} +} diff --git a/src/app/play/play.component.ts b/src/app/play/play.component.ts index f4b8a86..cdda010 100644 --- a/src/app/play/play.component.ts +++ b/src/app/play/play.component.ts @@ -1,5 +1,5 @@ import {Component, ElementRef, ViewChild, OnInit, Input, OnDestroy, HostListener} from '@angular/core'; - +import * as _ from 'lodash'; import { Label, MySprite, tweenChange, @@ -11,6 +11,7 @@ import {Subject} from 'rxjs'; import {debounceTime} from 'rxjs/operators'; import TWEEN from '@tweenjs/tween.js'; +import { animate, keyframes, state, style, transition, trigger } from '@angular/animations'; @@ -18,662 +19,161 @@ import TWEEN from '@tweenjs/tween.js'; @Component({ selector: 'app-play', templateUrl: './play.component.html', - styleUrls: ['./play.component.css'] + styleUrls: ['./play.component.scss'], + animations: [ + trigger('tip-border', [ + state('right', style({border: '0.3rem solid #52E55D', 'background-color': '#52E55D', transform: 'scale(1)'})), + state('none', style({transform: 'scale(1)'})), + state('wrong', style({border: '0.3rem solid #ff3333', 'background-color': '#ff3333', transform: 'scale(1)'})), + transition('none => wrong', animate('.2s ease-in', keyframes([ + style({transform: 'scale(1)'}), + style({transform: 'scale(0.6)'}), + style({transform: 'scale(1)'}), + ]))), // ç¬¬ä¸€ä¸ªå‚æ•°:动画时间, ç¬¬äºŒä¸ªå‚æ•°:动画延迟时间 + transition('none => right', animate('.2s ease-in', keyframes([ + style({transform: 'scale(1)'}), + style({transform: 'scale(0.6)'}), + style({transform: 'scale(1)'}), + ]))), + transition('wrong => none', animate('.2s ease-out')) + ]), + trigger('tip-circle', [ + state('right', style({'background-color': '#52E55D'})), + state('none', style({})), + state('wrong', style({'background-color': '#ff3333'})), + transition('none => wrong', animate('.2s ease-in')), // ç¬¬ä¸€ä¸ªå‚æ•°:动画时间, ç¬¬äºŒä¸ªå‚æ•°:动画延迟时间 + transition('none => right', animate('.2s ease-in')), + transition('wrong => none', animate('.2s ease-out')) + ]), + trigger('zoom', [ + state('in', style({ + position: 'absolute', 'z-index': '1', top: '0', left: '0', right: '0', bottom: '0', margin: 'auto', + height: '60%', 'object-fit': 'contain', 'max-width': '80%' + })), + state('none', style({})), + transition('none => in', animate('.3s', keyframes([ + style({ + height: '10%', position: 'absolute', 'z-index': '1', top: '0', left: '0', + right: '0', bottom: '0', margin: 'auto', 'object-fit': 'contain', 'max-width': '80%', + opacity: '0' + }), + style({ + height: '20%', position: 'absolute', 'z-index': '1', top: '0', left: '0', + right: '0', bottom: '0', margin: 'auto', 'object-fit': 'contain', 'max-width': '80%', + opacity: '0.2' + }), + style({ + height: '30%', position: 'absolute', 'z-index': '1', top: '0', left: '0', + right: '0', bottom: '0', margin: 'auto', 'object-fit': 'contain', 'max-width': '80%', + opacity: '0.4' + }), + style({ + height: '40%', position: 'absolute', 'z-index': '1', top: '0', left: '0', + right: '0', bottom: '0', margin: 'auto', 'object-fit': 'contain', 'max-width': '80%', + opacity: '0.6' + }), + style({ + height: '50%', position: 'absolute', 'z-index': '1', top: '0', left: '0', + right: '0', bottom: '0', margin: 'auto', 'object-fit': 'contain', 'max-width': '80%', + opacity: '0.8' + }), + ]))), // ç¬¬ä¸€ä¸ªå‚æ•°:动画时间, ç¬¬äºŒä¸ªå‚æ•°:动画延迟时间 + transition('in => none', animate('.5s ease-out')) + ]) + ] }) export class PlayComponent implements OnInit, OnDestroy { - - @ViewChild('canvas', {static: true }) canvas: ElementRef; - @ViewChild('wrap', {static: true }) wrap: ElementRef; + saveKey = 'ww_question'; + options; + zoomIn; + rightAudio = new Audio(); + wrongAudio = new Audio(); + OPTION_TYPE = {TEXT: 1, PIC: 2, AUDIO: 3}; + optionAudio = new Audio(); // æ•°æ® data; - - ctx; - - canvasWidth = 1280; // canvas实际宽度 - canvasHeight = 720; // canvas实际高度 - - canvasBaseW = 1280; // canvas 资æºé¢„设宽度 - canvasBaseH = 720; // canvas 资æºé¢„设高度 - - mx; // 点击xåæ ‡ - my; // 点击yåæ ‡ - - - // èµ„æº - rawImages = new Map(res); - rawAudios = new Map(resAudio); - - images = new Map(); - - animationId: any; - winResizeEventStream = new Subject(); - - audioObj = {}; - - renderArr; - mapScale = 1; - - canvasLeft; - canvasTop; - - saveKey = 'test_0011'; - - - btnLeft; - btnRight; - pic1; - pic2; - - canTouch = true; - - curPic; - - @HostListener('window:resize', ['$event']) - onResize(event) { - this.winResizeEventStream.next(); + constructor() { + this.rightAudio.src = '/assets/right.mp3'; + this.rightAudio.load(); + this.wrongAudio.src = '/assets/wrong.mp3'; + this.wrongAudio.load(); } - ngOnInit() { - this.data = {}; + ngOnInit() { + this.data = { + contentObj: {} + }; + this.zoomIn = false; + this.options = _.get(this.data.contentObj, 'options', []).map(item => { + item.state = ''; + // Ken 2019-04-15 22:38 把showPic, showText的逻辑æ¢ä¸ºtype + if (_.isUndefined(item.type)) { + item.type = item.showPic ? this.OPTION_TYPE.PIC : this.OPTION_TYPE.TEXT; + } + return item; + }); // èŽ·å–æ•°æ® - const getData = (<any> window).courseware.getData; + const getData = (window as any).courseware.getData; getData((data) => { - if (data && typeof data == 'object') { + if (data && typeof data === 'object') { this.data = data; + this.zoomIn = false; + this.options = _.get(this.data.contentObj, 'options', []).map(item => { + item.state = ''; + // Ken 2019-04-15 22:38 把showPic, showText的逻辑æ¢ä¸ºtype + if (_.isUndefined(item.type)) { + item.type = item.showPic ? this.OPTION_TYPE.PIC : this.OPTION_TYPE.TEXT; + } + return item; + }); } - // console.log('data:' , data); - - // åˆå§‹åŒ– å„äº‹ä»¶ç›‘å¬ - this.initListener(); - - // è‹¥æ— æ•°æ® åˆ™ä¸ºé¢„è§ˆæ¨¡å¼ éœ€è¦å¡«å……一些默认数æ®ç”¨æ¥æ˜¾ç¤º - this.initDefaultData(); - - // åˆå§‹åŒ– éŸ³é¢‘èµ„æº - this.initAudio(); - // åˆå§‹åŒ– å›¾ç‰‡èµ„æº - this.initImg(); - // å¼€å§‹é¢„åŠ è½½èµ„æº - this.load(); + if (window['air']) { + window['air'].hideAirClassLoading(this.saveKey, this.data); + } }, this.saveKey); } ngOnDestroy() { - window['curCtx'] = null; - window.cancelAnimationFrame(this.animationId); - } - - - load() { - - // é¢„åŠ è½½èµ„æº - this.loadResources().then(() => { - window["air"].hideAirClassLoading(this.saveKey, this.data); - this.init(); - this.update(); - }); - } - - - init() { - - this.initCtx(); - this.initData(); - this.initView(); - } - - initCtx() { - this.canvasWidth = this.wrap.nativeElement.clientWidth; - this.canvasHeight = this.wrap.nativeElement.clientHeight; - this.canvas.nativeElement.width = this.wrap.nativeElement.clientWidth; - this.canvas.nativeElement.height = this.wrap.nativeElement.clientHeight; - - - this.ctx = this.canvas.nativeElement.getContext('2d'); - this.canvas.nativeElement.width = this.canvasWidth; - this.canvas.nativeElement.height = this.canvasHeight; - - window['curCtx'] = this.ctx; - } - - - - - - - updateItem(item) { - if (item) { - item.update(); - } - } - - updateArr(arr) { - if (!arr) { - return; - } - for (let i = 0; i < arr.length; i++) { - arr[i].update(this); - } - } - - - - - - - - initListener() { - - this.winResizeEventStream - .pipe(debounceTime(500)) - .subscribe(data => { - this.renderAfterResize(); - }); - - - // --------------------------------------------- - const setParentOffset = () => { - const rect = this.canvas.nativeElement.getBoundingClientRect(); - this.canvasLeft = rect.left; - this.canvasTop = rect.top; - }; - const setMxMyByTouch = (event) => { - if (event.touches.length <= 0) { - return; - } - if (this.canvasLeft == null) { - setParentOffset(); - } - this.mx = event.touches[0].pageX - this.canvasLeft; - this.my = event.touches[0].pageY - this.canvasTop; - }; - - const setMxMyByMouse = (event) => { - this.mx = event.offsetX; - this.my = event.offsetY; - }; - // --------------------------------------------- - - - let firstTouch = true; - - const touchDownFunc = (e) => { - if (firstTouch) { - firstTouch = false; - removeMouseListener(); - } - setMxMyByTouch(e); - this.mapDown(e); - }; - const touchMoveFunc = (e) => { - setMxMyByTouch(e); - this.mapMove(e); - }; - const touchUpFunc = (e) => { - setMxMyByTouch(e); - this.mapUp(e); - }; - - const mouseDownFunc = (e) => { - if (firstTouch) { - firstTouch = false; - removeTouchListener(); - } - setMxMyByMouse(e); - this.mapDown(e); - }; - const mouseMoveFunc = (e) => { - setMxMyByMouse(e); - this.mapMove(e); - }; - const mouseUpFunc = (e) => { - setMxMyByMouse(e); - this.mapUp(e); - }; - - - const element = this.canvas.nativeElement; - - const addTouchListener = () => { - element.addEventListener('touchstart', touchDownFunc); - element.addEventListener('touchmove', touchMoveFunc); - element.addEventListener('touchend', touchUpFunc); - element.addEventListener('touchcancel', touchUpFunc); - }; - const removeTouchListener = () => { - element.removeEventListener('touchstart', touchDownFunc); - element.removeEventListener('touchmove', touchMoveFunc); - element.removeEventListener('touchend', touchUpFunc); - element.removeEventListener('touchcancel', touchUpFunc); - }; - - const addMouseListener = () => { - element.addEventListener('mousedown', mouseDownFunc); - element.addEventListener('mousemove', mouseMoveFunc); - element.addEventListener('mouseup', mouseUpFunc); - }; - const removeMouseListener = () => { - element.removeEventListener('mousedown', mouseDownFunc); - element.removeEventListener('mousemove', mouseMoveFunc); - element.removeEventListener('mouseup', mouseUpFunc); - }; - - addMouseListener(); - addTouchListener(); - } - - - playAudio(key, now = false, callback = null) { - - const audio = this.audioObj[key]; - if (audio) { - if (now) { - audio.pause(); - audio.currentTime = 0; - } - - if (callback) { - audio.onended = () => { - callback(); - }; - } - audio.play(); - } - } - - - - loadResources() { - const pr = []; - this.rawImages.forEach((value, key) => {// é¢„åŠ è½½å›¾ç‰‡ - - const p = this.preload(value) - .then(img => { - this.images.set(key, img); - }) - .catch(err => console.log(err)); - - pr.push(p); - }); - - this.rawAudios.forEach((value, key) => {// é¢„åŠ è½½éŸ³é¢‘ - - const a = this.preloadAudio(value) - .then(() => { - // this.images.set(key, img); - }) - .catch(err => console.log(err)); - - pr.push(a); - }); - return Promise.all(pr); - } - - preload(url) { - return new Promise((resolve, reject) => { - const img = new Image(); - // img.crossOrigin = "anonymous"; - img.onload = () => resolve(img); - img.onerror = reject; - img.src = url; - }); - } - - preloadAudio(url) { - return new Promise((resolve, reject) => { - const audio = new Audio(); - audio.oncanplay = (a) => { - resolve(); - }; - audio.onerror = () => { - reject(); - }; - audio.src = url; - audio.load(); - }); - } - - - renderAfterResize() { - this.canvasWidth = this.wrap.nativeElement.clientWidth; - this.canvasHeight = this.wrap.nativeElement.clientHeight; - this.init(); - } - - - - - - checkClickTarget(target) { - - const rect = target.getBoundingBox(); - - if (this.checkPointInRect(this.mx, this.my, rect)) { - return true; - } - return false; - } - - getWorlRect(target) { - - let rect = target.getBoundingBox(); - - if (target.parent) { - - const pRect = this.getWorlRect(target.parent); - rect.x += pRect.x; - rect.y += pRect.y; - } - return rect; - } - - checkPointInRect(x, y, rect) { - if (x >= rect.x && x <= rect.x + rect.width) { - if (y >= rect.y && y <= rect.y + rect.height) { - return true; - } - } - return false; - } - - - - - - addUrlToAudioObj(key, url = null, vlomue = 1, loop = false, callback = null) { - - const audioObj = this.audioObj; - - if (url == null) { - url = key; - } - - this.rawAudios.set(key, url); - - const audio = new Audio(); - audio.src = url; - audio.load(); - audio.loop = loop; - audio.volume = vlomue; - - audioObj[key] = audio; - - if (callback) { - audio.onended = () => { - callback(); - }; - } - } - - addUrlToImages(url) { - this.rawImages.set(url, url); - } - - - - - - - // ======================================================编写区域========================================================================== - - - - - - /** - * æ·»åŠ é»˜è®¤æ•°æ® ä¾¿äºŽæ— æ•°æ®æ—¶çš„展示 - */ - initDefaultData() { - - if (!this.data.pic_url) { - this.data.pic_url = 'assets/play/default/pic.jpg'; - this.data.pic_url_2 = 'assets/play/default/pic.jpg'; - } - } - - - /** - * æ·»åŠ é¢„åŠ è½½å›¾ç‰‡ - */ - initImg() { - - this.addUrlToImages(this.data.pic_url); - this.addUrlToImages(this.data.pic_url_2); - - } - - /** - * æ·»åŠ é¢„åŠ è½½éŸ³é¢‘ - */ - initAudio() { - - // éŸ³é¢‘èµ„æº - this.addUrlToAudioObj(this.data.audio_url); - this.addUrlToAudioObj(this.data.audio_url_2); - - // 音效 - this.addUrlToAudioObj('click', this.rawAudios.get('click'), 0.3); - - } - - - - /** - * åˆå§‹åŒ–æ•°æ® - */ - initData() { - - const sx = this.canvasWidth / this.canvasBaseW; - const sy = this.canvasHeight / this.canvasBaseH; - const s = Math.min(sx, sy); - this.mapScale = s; - - // this.mapScale = sx; - // this.mapScale = sy; - - - this.renderArr = []; - - - - } - - - - /** - * åˆå§‹åŒ–试图 - */ - initView() { - - - this.initPic(); - - this.initBottomPart(); - - } - - initBottomPart() { - - const btnLeft = new MySprite(); - btnLeft.init(this.images.get('btn_left')); - btnLeft.x = this.canvasWidth - 150 * this.mapScale; - btnLeft.y = this.canvasHeight - 100 * this.mapScale; - - btnLeft.setScaleXY(this.mapScale); - - this.renderArr.push(btnLeft); - - this.btnLeft = btnLeft; - - - - const btnRight = new MySprite(); - btnRight.init(this.images.get('btn_right')); - btnRight.x = this.canvasWidth - 50 * this.mapScale; - btnRight.y = this.canvasHeight - 100 * this.mapScale; - btnRight.setScaleXY(this.mapScale); - - this.renderArr.push(btnRight); - - this.btnRight = btnRight; + this.rightAudio.pause(); + this.wrongAudio.pause(); + this.optionAudio.pause(); + this.rightAudio = null; + this.wrongAudio = null; + this.optionAudio = null; } - initPic() { - - const maxW = this.canvasWidth * 0.7; - - const pic1 = new MySprite(); - pic1.init(this.images.get(this.data.pic_url)); - pic1.x = this.canvasWidth / 2; - pic1.y = this.canvasHeight / 2; - pic1.setScaleXY(maxW / pic1.width); - - this.renderArr.push(pic1); - this.pic1 = pic1; - - - const label1 = new Label(); - label1.text = this.data.text; - label1.textAlign = 'center'; - label1.fontSize = 50; - label1.fontName = 'BRLNSDB'; - label1.fontColor = '#ffffff'; - - pic1.addChild(label1); - - - - - - const pic2 = new MySprite(); - pic2.init(this.images.get(this.data.pic_url_2)); - pic2.x = this.canvasWidth / 2 + this.canvasWidth; - pic2.y = this.canvasHeight / 2; - pic2.setScaleXY(maxW / pic2.width); - - this.renderArr.push(pic2); - this.pic2 = pic2; - - this.curPic = pic1; + transCharCode(index) { + return String.fromCharCode(65 + index); } - - btnLeftClicked() { - - this.lastPage(); - } - - btnRightClicked() { - - this.nextPage(); - } - - lastPage() { - - if (this.curPic == this.pic1) { - return; + handleAnimation(item) { + if (item.right) { + item.state = 'right'; + this.rightAudio.play(); + } else { + item.state = 'wrong'; + this.wrongAudio.play(); + setTimeout(() => { + item.state = ''; + }, 1500); } - - this.canTouch = false; - - const moveLen = this.canvasWidth; - tweenChange(this.pic1, {x: this.pic1.x + moveLen}, 1); - tweenChange(this.pic2, {x: this.pic2.x + moveLen}, 1, () => { - this.canTouch = true; - this.curPic = this.pic1; - }); } - nextPage() { - - if (this.curPic == this.pic2) { - return; - } - - this.canTouch = false; - - const moveLen = this.canvasWidth; - tweenChange(this.pic1, {x: this.pic1.x - moveLen}, 1); - tweenChange(this.pic2, {x: this.pic2.x - moveLen}, 1, () => { - this.canTouch = true; - this.curPic = this.pic2; - }); + onHandleZoomIn() { + this.zoomIn = !this.zoomIn; } - pic1Clicked() { - this.playAudio(this.data.audio_url); + playAudio(option, e) { + e.stopPropagation(); + this.optionAudio.src = option.audio_id; + // this.optionAudio.load(); + this.optionAudio.play(); } - - pic2Clicked() { - this.playAudio(this.data.audio_url_2); - } - - - - - - mapDown(event) { - - if (!this.canTouch) { - return; - } - - if ( this.checkClickTarget(this.btnLeft) ) { - this.btnLeftClicked(); - return; - } - - if ( this.checkClickTarget(this.btnRight) ) { - this.btnRightClicked(); - return; - } - - if ( this.checkClickTarget(this.pic1) ) { - this.pic1Clicked(); - return; - } - - if ( this.checkClickTarget(this.pic2) ) { - this.pic2Clicked(); - return; - } - - } - - mapMove(event) { - - } - - mapUp(event) { - - } - - - - update() { - - // ---------------------------------------------------------- - this.animationId = window.requestAnimationFrame(this.update.bind(this)); - // 清除画布内容 - this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight); - // tween 更新动画 - TWEEN.update(); - // ---------------------------------------------------------- - - - - this.updateArr(this.renderArr); - - - } - - - } diff --git a/src/app/style/mixin.scss b/src/app/style/mixin.scss new file mode 100644 index 0000000..dd32d36 --- /dev/null +++ b/src/app/style/mixin.scss @@ -0,0 +1,18 @@ +@mixin hide-overflow-text { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +@mixin k-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +@mixin k-img-bg { + background-repeat: no-repeat; + background-position: center; + background-size: contain; +} diff --git a/src/assets/common_bg.jpg b/src/assets/common_bg.jpg new file mode 100755 index 0000000000000000000000000000000000000000..e1a3aac22a633ca64eb9bc038d0be799e5fda585 GIT binary patch literal 57206 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 UAdF;Df;dwg>{6E9iT`f`0Pem-MF0Q* literal 0 HcmV?d00001 diff --git a/src/assets/right.mp3 b/src/assets/right.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c02694bcae3bd70abeca0d77230e47c33a829434 GIT binary patch literal 12525 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 M>uxjue>IZ-0u%=&bpQYW literal 0 HcmV?d00001 diff --git a/src/assets/wrong.mp3 b/src/assets/wrong.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6c4b324803190f0a4c9ca28742a34c55962d74f0 GIT binary patch literal 7362 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 M>sv>9|MPm<--}qy761SM literal 0 HcmV?d00001 diff --git a/src/styles.css b/src/styles.css deleted file mode 100644 index 90d4ee0..0000000 --- a/src/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 0000000..4c1a339 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,51 @@ +/* You can add global styles to this file, and also import other style files */ + +/* You can add global styles to this file, and also import other style files */ +/* You can add global styles to this file, and also import other style files */ + +html, body { + width: 100%; + height: 100%; + font-size: 16px; +} + +body { + background-color: #f0f2f5 !important; +} + +* { + outline: none; +} + +@font-face { + font-family: ChalkboardSE-Regular; + src: url('/assets/font/ChalkboardSE-Regular.woff') format('WOFF'); +} + +.k-16-9 { + position: relative; + width: 100%; + height: fit-content; +&:before { + content: ""; + display: block; + position: relative; + width: 100%; + height: 0; + padding-bottom: 56.25%; + } +} + +.k-full-fill { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.k-flex-center { + display: flex; + align-items: center; + justify-content: center; +} -- 2.21.0