index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. Component({
  2. // behaviors: [require('../common/share-behavior').default],
  3. properties: {
  4. a: Number,
  5. },
  6. data: {
  7. loaded: false,
  8. arReady: false,
  9. },
  10. lifetimes: {
  11. async attached() {
  12. console.log('data', this.data)
  13. }
  14. },
  15. methods: {
  16. handleReady({
  17. detail
  18. }) {
  19. const xrScene = this.scene = detail.value;
  20. this.mat = new(wx.getXrFrameSystem().Matrix4)();
  21. console.log('xr-scene', xrScene);
  22. },
  23. handleAssetsProgress: function ({
  24. detail
  25. }) {
  26. console.log('assets progress', detail.value);
  27. },
  28. handleAssetsLoaded: function ({
  29. detail
  30. }) {
  31. console.log('assets loaded', detail.value);
  32. // this.setData({loaded: true});
  33. this.scene.event.addOnce('touchstart', this.placeNode.bind(this));
  34. },
  35. handleARReady: function ({
  36. detail
  37. }) {
  38. console.log('arReady', this.scene.ar.arVersion);
  39. },
  40. placeNode(event) {
  41. const {
  42. clientX,
  43. clientY
  44. } = event.touches[0];
  45. const {
  46. frameWidth: width,
  47. frameHeight: height
  48. } = this.scene;
  49. if (clientY / height > 0.8 && clientX / width < 0.2) {
  50. this.scene.getNodeById('setitem').visible = false;
  51. this.scene.ar.resetPlane();
  52. } else {
  53. this.scene.ar.placeHere('setitem', true);
  54. }
  55. this.scene.event.addOnce('touchstart', this.placeNode.bind(this));
  56. }
  57. }
  58. })