diff --git a/source/Component/Recorder/Recorder.scss b/source/Component/Recorder/Recorder.scss index febaf83..1bb6b31 100644 --- a/source/Component/Recorder/Recorder.scss +++ b/source/Component/Recorder/Recorder.scss @@ -30,7 +30,7 @@ div.recorder-root { span.ms-Slider-inactive { height: 3px; - animation: none; + transition: none; } } diff --git a/source/Component/Recorder/Recorder.tsx b/source/Component/Recorder/Recorder.tsx index d75e3d9..542354a 100644 --- a/source/Component/Recorder/Recorder.tsx +++ b/source/Component/Recorder/Recorder.tsx @@ -14,6 +14,7 @@ interface IRecorderProps { allTime?: number; currentTime?: number; action?: () => void; + valueChange?: (value: number) => any; } class Recorder extends Component { @@ -85,19 +86,38 @@ class Recorder extends Component { max={this.props.allFrame} className={"recorder-slider" + (isSliderDisable ? " disable" : "")} showValue={false} + onChange={(value) => { + if (this.props.valueChange && !isSliderDisable) { + this.props.valueChange(value); + } + }} />
{this.getRecordInfo()}
-
+
{ + if (this.props.valueChange && !isJumpDisable && this.props.currentFrame !== undefined) { + this.props.valueChange(this.props.currentFrame - 1); + } + }} + >
-
+
{ + if (this.props.valueChange && !isJumpDisable && this.props.currentFrame !== undefined) { + this.props.valueChange(this.props.currentFrame + 1); + } + }} + >
diff --git a/source/Model/Actuator.ts b/source/Model/Actuator.ts index 8479ad1..003696d 100644 --- a/source/Model/Actuator.ts +++ b/source/Model/Actuator.ts @@ -217,6 +217,23 @@ class Actuator extends Emitter { private playTickerTimer?: number; + /** + * 设置播放进度 + */ + public setPlayProcess(id: number) { + if (this.playClip && id >= 0 && id < this.playClip.frames.length) { + + // 跳转值这帧 + this.playFrameId = id; + this.playFrame = this.playClip.frames[this.playFrameId]; + this.emit("record", this.playFrame.duration); + + if (this.mod !== ActuatorModel.Play) { + this.playClip.play(this.playFrame); + } + } + } + /** * 播放时钟 */ diff --git a/source/Panel/ClipPlayer/ClipRecorder.tsx b/source/Panel/ClipPlayer/ClipRecorder.tsx index 260f744..1fe079f 100644 --- a/source/Panel/ClipPlayer/ClipRecorder.tsx +++ b/source/Panel/ClipPlayer/ClipRecorder.tsx @@ -93,6 +93,9 @@ class ClipRecorder extends Component { console.log("ClipRecorder: Pause start..."); } }} + valueChange={(value) => { + this.props.status?.actuator.setPlayProcess(value); + }} /> } }