/**
* @file playback-rate-menu-item.js
*/
從 '../../menu/menu-item.js' 導入 MenuItem;
從 '../../component.js' 導入組件;
/**
* 用於選擇播放速率的特定菜單項類型。
*
* @extends 菜單項
*/
類 PlaybackRateMenuItem 擴展 MenuItem {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 `Player`。
*
* @param {對象} [選項]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項){
const label = options.rate;
const rate = parseFloat(label, 10);
// 修改父 MenuItem 類的 init 的選項。
options.label = 標籤;
options.selected = rate === player.playbackRate();
options.selectable = true;
options.multiSelectable = false;
超級(播放器,選項);
this.label = 標籤;
this.rate = rate;
this.on(player, 'ratechange', (e) => this.update(e));
}
/**
* 當 `PlaybackRateMenuItem` 被“點擊”時調用。看
* {@link ClickableComponent} 以獲取有關點擊的更多詳細信息。
*
* @param {EventTarget~Event} [事件]
* 導致此功能被執行的 `keydown`、`tap` 或 `click` 事件
* 打電話。
*
* @listens 水龍頭
* @listens 點擊
*/
handleClick(事件){
super.handleClick();
this.player().playbackRate(this.rate);
}
/**
* 當播放速率改變時更新 PlaybackRateMenuItem。
*
* @param {EventTarget~Event} [事件]
* 導致此函數運行的 `ratechange` 事件。
*
* @listens Player#ratechange
*/
更新(事件){
this.selected(this.player().playbackRate() === this.rate);
}
}
/**
* 應顯示在 `PlaybackRateMenuItem` 控件上的文本。添加本地化。
*
* @type {字符串}
* @私人的
*/
PlaybackRateMenuItem.prototype.contentElType = '按鈕';
Component.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
導出默認 PlaybackRateMenuItem;