這一章決定了動畫與時間軸經過滑動觸發的核心代碼。先看一下Alloytouch.js滑動庫的基礎基礎代碼 打開index.js,輸入下面的代碼html
let alloyTouch;
function initTouch(vertical,val){
let scrollDis = app.stage.width+max;
alloyTouch = new AlloyTouch({
touch:"body",//反饋觸摸的dom
vertical: vertical,//沒必要需,默認是true表明監聽豎直方向touch
min: 0, //沒必要需,運動屬性的最小值
maxSpeed: 1,
max: app.stage.width - max-20, //沒必要需,滾動屬性的最大值
bindSelf: false,
initialValue: 0,
change:function(value){
app.stage.position[val] = value;
let progress = value/scrollDis;
progress = progress < 0 ? 0 : progress;
progress = progress > 1 ? 1 : progress;
timeline.seek(progress);
}
})
};
})
複製代碼
if (w<h) { // 豎屏,旋轉舞臺
app.stage.rotation = 1.5708;
app.stage.pivot.set(0.5);
app.stage.x = w;
initTouch(true,'y'); // 初始化滑動
}else { // 橫屏
initTouch(false,'x'); // 初始化滑動
}
複製代碼
let timeline = new TimelineMax({ // 整個舞臺的時間軸
paused: true
});
複製代碼
這句話代碼就是整個舞臺的時間,而且在一開始中止播放bash
而後在打開animation.js文件 找一下微信
TweenMax.to(target,obj[i].duration,obj[i].to)
let tm = new TimelineMax({delay:obj[i].delay});
tm.add(act,0);
tm.play();
timeline.add(tm,0)
複製代碼
第一行TweenMax.to就是(選擇器,持續時間,如何運動) 第二行TimelineMax({delay:obj[i].delay}),延遲多少秒網絡
在滑動的change時間中加入一個方法,傳入時間,把音頻事先放入在html中,引入音頻文件架構
// 播放背景音樂
playAudio(progress);
//判斷什麼時間播放
function playAudio(progress){
if (progress>=0.08 && progress<=0.081) {
playBgmAfterLoading('wechat');
setTimeout(function(){
tickerPhone.stop();
playBgmAfterLoading('talk_5');
},2000)
}
}
function playBgmAfterLoading(e,next,wait) {
playBgm(e);
if (next) {
setTimeout(function(){
playBgm(next);
},wait);
}
}
function playBgm(e){
let audio = document.getElementById(e);
if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
WeixinJSBridge.invoke('getNetworkType', {}, function (res) {
// 在這裏拿到 e.err_msg, 這裏面就包含了全部的網絡類型
// alert(res.err_msg);
audio.play();
});
} else {
audio.play();
}
}
複製代碼
到此爲止一鏡到底
的基本架構就出來了。 剩下的功能就是app
複製代碼