首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

跟我学Rx编程——调皮的背景音乐按钮

涉及操作符 partition switchMapTo takeUntil 业务逻辑 点击背景音乐按钮,则播放音乐,再次点击暂停播放音乐 当切换场景的时候,如果音乐正在播放,则切换新的场景的背景音乐 当切换场景的时候...RxJS实现 首先我们定义播放按钮的事件流,以及切换场景的事件流 let playMusicClickOb = fromEvent(musicBn, 'click') let changeStageOb...我们来分析 rxjs.merge(playingStageOb, muteStageOb.pipe(switchMapTo(playMusicClickOb.pipe(take(1)), outv =>...静音时转场,然后点击了播放音乐的按钮 下面我们分析以下的逻辑: })), switchMapTo(playMusicClickOb.pipe(takeUntil(muteStageOb)), outV...静音时转场,然后点击了播放音乐的按钮 的状态,看到没,所以我们使用takeUntil来终止当前事件流。如果是播放音乐的状态下转场了呢?这就回到了上面的 1.

48510

跟我学Rx编程——惯性滑动

涉及操作符 scan switchMapTo switchMap mapTo takeUntil takeWhile filter 基本事件流 我们需要三个基本的事件流,分别是鼠标(手指)按下、移动、抬起...我们需要取得手指或者鼠标按下后移动的距离来确定每时每刻的速度,因为我们需要在手指或鼠标抬起的瞬间利用这个速度进行惯性移动 let speedOb = mdOb.pipe(switchMapTo(mmOb.pipe(takeUntil...aac.timeStamp = timeStamp return aac })))); 其中 mdOb.pipe(switchMapTo(mmOb.pipe(takeUntil...let inertiaOb = rxjs.combineLatest(muOb, speedOb).pipe(switchMap(([, { delta, lastTs, timeStamp }]) =...执行滑动操作 本例是改变序列帧的索引,也可以用其他逻辑代替 return rxjs.merge(speedOb, inertiaOb).pipe(filter(_ => _.delta !

67720
领券