1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { defaults } from 'zrender/lib/core/util.js';
- export function installTimelineAction(registers) {
- registers.registerAction({
- type: 'timelineChange',
- event: 'timelineChanged',
- update: 'prepareAndUpdate'
- }, function (payload, ecModel, api) {
- var timelineModel = ecModel.getComponent('timeline');
- if (timelineModel && payload.currentIndex != null) {
- timelineModel.setCurrentIndex(payload.currentIndex);
- if (!timelineModel.get('loop', true) && timelineModel.isIndexMax() && timelineModel.getPlayState()) {
- timelineModel.setPlayState(false);
- api.dispatchAction({
- type: 'timelinePlayChange',
- playState: false,
- from: payload.from
- });
- }
- }
- ecModel.resetOption('timeline', {
- replaceMerge: timelineModel.get('replaceMerge', true)
- });
- return defaults({
- currentIndex: timelineModel.option.currentIndex
- }, payload);
- });
- registers.registerAction({
- type: 'timelinePlayChange',
- event: 'timelinePlayChanged',
- update: 'update'
- }, function (payload, ecModel) {
- var timelineModel = ecModel.getComponent('timeline');
- if (timelineModel && payload.playState != null) {
- timelineModel.setPlayState(payload.playState);
- }
- });
- }
|