康巴易测肤/伤疤uniapp小程序类
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

1 miesiąc temu
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. class ActionContainer {
  2. //动作组 actions
  3. //起始动作下标 index
  4. //初始提示 tip
  5. //绑定 完成所有动作的回调 endFun
  6. //绑定 动作进行中 ingFun
  7. //绑定 动作完成时 successFun
  8. //绑定 动作失败时 failFun
  9. constructor(actions, index, tip, endFun, ingFun, successFun, failFun) {
  10. this.actions = actions || []
  11. this.index = index || 0
  12. this.tip = tip || '检测不到人脸'
  13. this.endFun = endFun || this.__tempFun
  14. this.ingFun = ingFun || this.__tempFun
  15. this.successFun = successFun || this.__tempFun
  16. this.failFun = failFun || this.__tempFun
  17. }
  18. __tempFun(){
  19. }
  20. next(faceData) {
  21. if (this.index >= this.actions.length) {
  22. this.endFun()
  23. return this
  24. }
  25. if (this.actions[this.index].state === 'ing') {
  26. this.tip = this.actions[this.index].tip
  27. this.actions[this.index].check(faceData)
  28. this.ingFun()
  29. return this
  30. } else if (this.actions[this.index].state === 'success') {
  31. this.index++;
  32. this.successFun()
  33. return this
  34. } else if (this.actions[this.index].state === 'fail') {
  35. this.failFun()
  36. return this
  37. }
  38. return this
  39. }
  40. end(fun) { //绑定 完成所有动作的回调
  41. this.endFun = fun || this.__tempFun
  42. return this
  43. }
  44. ing(fun) { //绑定 动作进行中
  45. this.ingFun = fun || this.__tempFun
  46. return this
  47. }
  48. success(fun) { //绑定 动作完成时
  49. this.successFun = fun || this.__tempFun
  50. return this
  51. }
  52. fail(fun) { //绑定 动作失败时
  53. this.failFun = fun || this.__tempFun
  54. return this
  55. }
  56. }
  57. export default ActionContainer