- 【已解决】getuserinfo默认代码回调函数为什么这么写?
[图片] 如图,app.userInfoReadyCallback = res =>{...} 这段代码的意思不是把告诉app里的userInfoReadyCallback函数要做什么事情吗 所以有两个问题 第一:这段代码就告诉app里的userInfoReadyCallback函数要做什么事情,没有执行这个函数?????? 第二:userInfoReadyCallback这个函数是在app.js的进程里执行,还是在index.js的进程里执行? 第三:userInfoReadyCallback的参数res是怎么做到从app.js传递到index.js里的,有没有原理? 本人小白,实在不知道该怎么在百度上查才来麻烦请假各位大佬的,望大佬赐教。感激不尽! =============================================================================== 【最佳答案】 本人已决绝,问题出在this的问题上。 第一个问题,是的,在index.js里只是生命这个函数,没有执行,但是他是生命在app.js里,并且在app.js里的getuserinfo网络请求success后执行了。 第二个问题,在app.js进程里执行 第三:通过this指向index.js,在index.js里给app.js声明函数时,函数里的this指向的事index.js,而不是app.js,所以在app.js调用这个函数时,函数里的this依旧是指向index.js。
2020-05-20 - 大家小程序后端服务器都是用什么部署方式,是lamp还是lnmp还是thinkphp还是什么呢?
我想用lamp,因为我后端就是从lamp开始学的,但是会不会lamp,lnmp,thinkphp这些都是用来做网页的,用来服务小程序会不会没用在刀刃上?我百度查了说用node.js部署,本人是一个独立开发者,不做什么大项目,不知各位大佬有何见解?
2020-05-09 - 我的电脑怎么了?
出现了雪花??? 不仅仅是微信小程序这样子,vscode也这样,然后鼠标点一点雪花就没了,但是过一会儿又有了???? 小白求助,百度也不知道怎么搜索,都不知道这是什么病。。。 [图片]
2020-04-02 - 如何等待异步函数返回后在执行赋值操作?
async getData(i){ //这个函数是异步的从服务器获取data //怎么获取略 //最后return data return data; } onLoad:function(){ for(int i=1;i<data.length;i++){ this.setData({ abc[i]:getData(i); }) } } 但是setData执行完了,getData才return,怎么等getData执行完了,我在setData 拒绝使用callback和把操作写到getdata里,因为我就是要for循环。
2020-03-31 - wx.playBackgroundAudio底部的音乐播放条怎么隐藏?
[图片] 这玩意怎么隐藏
2020-03-03 - AudioContext.play()不被打断?
//wxml 播放 //js button_Press:function(){ const audio_1 = wx.createInnerAudioContext(); audio_1.src = "abc.mp3"; audio_1.play(); } 连续点击按钮会导致音乐叠加播放,就是上一个还没播放完,下一个就开始播放了,并且上一个不被打断,该怎么办???? 而且音乐还没播放完,返回到上一级还在播放,怎么办?????
2020-03-02 - 小程序怎么判断是否已经下载了云开发中的数据库和云储存?
因为小程序云开发有数据库请求次数和cdn流量限制, 我就希望能做到: 1.判断用户是否已经加载某个数据库 2.如果没有,那就加载 3.如果有,那就直接打开本地缓存 4.判断用户是否已经下载了xxx.MP3 5.如果没有,那就下载 6.如果有,那就加载本地缓存 就只不知道怎么判断“是否已经加载云开发中的数据库和云储存的东西” 还有数据库怎么判断本地的版本和云数据库的版本是否一致,本地版本是否要更新。 谢谢各位大佬帮忙!
2020-03-01 - 【已解决】同时触发多个bindtap,怎么办?
我点击img,就是图片左上角那个编辑按钮,同时出发了change_To_TimePage()函数和more_Operation()函数,请问要怎么办,如果没办法修复有其他解决方案吗 小白一枚请求各位大佬赐教! 27min [图片]
2020-02-24 - 怎么实现如下动画?删除 后 向上滑动
如图1,就是删除其中一个块后,下面的块自动向上滑动补齐。 [图片] 我一开始是这么实现的: 用js循环对下面的那些块导出向上滑动的动画,然后等动画播放结束后,将被删除的那个快disable掉(用wx:if实现,就相当于脱离了标准文档流),可是在disable掉的那一瞬间会闪一下,如图2,所以我就想有没有其他解决办法,本人也是萌新,希望各位大哥能赐教。 [图片] 顺便附上我写的乱七八糟的代码 各位大佬大可不必看我这乱七八糟的代码,免得让你们头痛,我的思路就如上,就是用js循环,给被删除的那个块下面的所有块导出向上移动的动画,等他们都移动完后,我就让被删除的那个块彻彻底底消除掉,为什么要删除掉,因为过会儿还有其他块要被删除,还有其他块要向上滑动,如果不删除那个被删除的块的话,及时播放动画后他们在文档流中的实际位置不会改变,再播放一次向上滑动的动画会从他们在文档流中的实际位置开始,而不是从我们眼睛看到的位置继续向上滑动,所以我要将被删除的那个块从文档流中剔除。 所以我在想有没有什么办法能在小程序中实现像ios如此丝滑的变化。 不知各位大哥能否听懂我在说啥,,,,, WXML 人生最棒的感觉 就是你做到别人说你做不到的事 ——彭于晏 开始健身 {{item.name}} {{item.time}} s JS Page({ data: { //animation button_Disappear_Animation:' ', block_Animation:' ', pressed:true, idx:0, timer: '', countDownNum: '60', action:[ { name:'波比跳20下', time:'1', url:'/audio/波比跳20下.mp3' }, { name:'休息', time:'60', url:'/audio/休息60秒.mp3' }, { name:'波比跳20下', time:'90', url:'/audio/波比跳20下.mp3' }, { name:'休息', time:60, url:'/audio/休息60秒.mp3' }, { name:'波比跳20下', time:90, url:'/audio/波比跳20下.mp3' }, { name:'休息', time:60, url:'/audio/休息60秒.mp3' }, { name:'右交叉转体30下', time:60, url:'/audio/右交叉转体.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'左交叉转体30下', time:60, url:'/audio/左交叉转体.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'双脚环绕100下', time:60, url:'/audio/双脚环绕.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'俯卧撑30下', time:60, url:'/audio/俯卧撑30.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'钟摆式', time:60, url:'/audio/钟摆式.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'划船式', time:60, url:'/audio/划船式.mp3' }, { name:'俯卧撑30下', time:60, url:'/audio/俯卧撑30.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'钟摆式', time:60, url:'/audio/钟摆式.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'划船式', time:60, url:'/audio/划船式.mp3' }, { name:'俯卧撑30下', time:60, url:'/audio/俯卧撑30.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'平板支撑抬腿', time:60, url:'/audio/平板支撑抬.mp3' }, { name:'休息', time:30, url:'/audio/休息30秒.mp3' }, { name:'平板支撑抬腿', time:60, url:'/audio/平板支撑抬.mp3' } ] }, onShow: function(){ }, onReady:function(){ }, countDown: function () { let that = this; let countDownNum = that.data.action[that.data.idx].time; let idbx=that.data.idx; let voice_Url = that.data.action[that.data.idx].url; const audio_1 = wx.createInnerAudioContext(); audio_1.src = voice_Url; audio_1.play(); that.data.timer = setInterval(function (){ if (countDownNum == 0) { if(that.data.idx == 26){ clearInterval(that.data.timer); }else{ clearInterval(that.data.timer); ////////////////////////////////////////////////////////////////////// //////////第一项向左移动并且下面所有项目向上移动的动画,物件未脱离标准文档流 for (let i = that.data.idx; i < that.data.action.length; i++) { if(i==that.data.idx){ let newAnimation = wx.createAnimation({ duration:500, timingFunction:'ease', delay: 0, }) newAnimation.translate(-500,0).step(); let animation_Scr = "action[" + idbx + "].animation"; that.setData({ [animation_Scr]:newAnimation.export() }) }else{ let newAnimation = wx.createAnimation({ duration:500, timingFunction:'ease', delay: 0, }) newAnimation.translate(0,-127.5).step();//-97.5 let animation_Scr = "action[" + i + "].animation"; that.setData({ [animation_Scr]:newAnimation.export() }) } } ////////////////////////////END/////////////////////////////// ////////////////////////////////////////////////////////////// console.log("修改idbx值"); let newNum = idbx; newNum++; that.setData({ idx:newNum }) that.countDown(); ////////////////////////////////////////////////////////////// ///删除第一项的同时!!!!使剩下的物件回到初始位置/////////////// setTimeout(function() { for (let i = that.data.idx; i < that.data.action.length; i++){ let reset_Animation = wx.createAnimation({ duration: 0, }); reset_Animation.translate(0,0).step(); let animation_Scr = "action[" + i + "].animation"; that.setData({ [animation_Scr]:reset_Animation.export() }); } let btn="action[" + idbx + "].time"; that.setData({ [btn] : '已完成' }) }, 500); /////////////////////////END/////////////////////////////////// /////////////////////////////////////////////////////////////// } }else{ countDownNum--; let bt="action[" + idbx + "].time"; that.setData({ [bt] : countDownNum })} }, 1000) }, presseTheButton(){ let button_Disappear_Animation = wx.createAnimation({ duration:1000, timingFunction:'ease', delay: 50, }) let motor_Down_Animation = wx.createAnimation({ duration:600, timingFunction:'ease', delay: 1050, }) button_Disappear_Animation.translate(-500,0).step(); motor_Down_Animation.translate(0,33).step(); this.setData({ button_Disappear_Animation:button_Disappear_Animation.export(), motor_Down_Animation:motor_Down_Animation.export() }); this.setData({ pressed:true }); this.countDown() }, showT: function(){ wx.showToast({ title:'aaa', }) }, pressingButton:function(){ } })
2020-02-21