优化回调分离

This commit is contained in:
Harvey Zack committed 2018-11-15 14:24:12 +08:00
1 parent 4b61098945
commit ac1ba12767
11 files changed
+108 -53

No files matched your search

@@ -17,9 +17,16 @@ export default function aspectRatio(art) {
const { ratio } = target.dataset;
if (ratio) {
player.aspectRatio(ratio.split(':'));
inverseClass(target, 'current');
art.contextmenu.hide();
}
},
callback: $menu => {
art.on('aspectRatio', ratio => {
const $current = Array.from($menu.querySelectorAll('span')).find(
item => item.dataset.ratio === ratio.join(':')
);
inverseClass($current, 'current');
});
}
};
}
+4 -3
View File
@@ -60,10 +60,11 @@ export default class Contextmenu {
this.art.emit('contextmenu:click', $menu);
});
}
this.art.emit('contextmenu:add', $menu);
callback && callback($menu);
this[name] = $menu;
insertByIndex($contextmenu, $menu, menu.index || id);
this[name] = $menu;
menu.callback && menu.callback($menu);
callback && callback($menu);
this.art.emit('contextmenu:add', $menu);
}
}
@@ -20,9 +20,16 @@ export default function playbackRate(art) {
const { rate } = target.dataset;
if (rate) {
player.playbackRate(Number(rate));
inverseClass(target, 'current');
art.contextmenu.hide();
}
},
callback: $menu => {
art.on('playbackRate', rate => {
const $current = Array.from($menu.querySelectorAll('span')).find(
item => Number(item.dataset.rate) === rate
);
inverseClass($current, 'current');
});
}
};
}
+4 -3
View File
@@ -28,10 +28,11 @@ export default class Layers {
this.art.emit('layers:click', $layer);
});
}
this.art.emit('layers:add', $layer);
callback && callback($layer);
this[name] = $layer;
insertByIndex($layers, $layer, layer.index || id);
this[name] = $layer;
item.callback && item.callback($layer);
callback && callback($layer);
this.art.emit('layers:add', $layer);
}
}
@@ -46,8 +46,6 @@ export default function aspectRatioMix(art, player) {
setStyle($video, 'height', null);
setStyle($video, 'padding', null);
delete $player.dataset.aspectRatio;
const $default = art.contextmenu.aspectRatio.querySelector('.default');
inverseClass($default, 'current');
}
}
});
@@ -1,5 +1,8 @@
export default function currentTimeMix(art, player) {
Object.defineProperty(player, 'currentTime', {
get: () => art.refs.$video.currentTime || 0
get: () => art.refs.$video.currentTime || 0,
set: currentTime => {
art.refs.$video.currentTime = currentTime;
}
});
}
@@ -1,4 +1,4 @@
import { clamp, inverseClass } from '../utils';
import { clamp } from '../utils';
export default function playbackRateMix(art, player) {
const { refs: { $video, $player }, i18n, notice } = art;
@@ -22,8 +22,6 @@ export default function playbackRateMix(art, player) {
if (player.$playbackRateState) {
player.playbackRate(1);
delete $player.dataset.playbackRate;
const $normal = art.contextmenu.playbackRate.querySelector('.normal');
inverseClass($normal, 'current');
}
}
});
+13 -11
View File
@@ -3,18 +3,20 @@ export default function switchMix(art, player) {
Object.defineProperty(player, 'switch', {
value: (url, name = 'unknown') => {
const { currentTime } = player;
art.emit('beforeMountUrl', url);
$video.src = player.mountUrl(url);
option.url = url;
player.playbackRateRemove();
player.aspectRatioRemove();
player.seek(currentTime);
if (isPlaying) {
player.play();
if (url !== option.url) {
const { currentTime } = player;
art.emit('beforeMountUrl', url);
$video.src = player.mountUrl(url);
option.url = url;
player.playbackRateRemove();
player.aspectRatioRemove();
player.seek(currentTime);
if (isPlaying) {
player.play();
}
notice.show(`${i18n.get('Switch video')}: ${name}`);
art.emit('switch', url);
}
notice.show(`${i18n.get('Switch video')}: ${name}`);
art.emit('switch', url);
}
});
}