更新 '频谱样式开发教程'

master
Mashiro_Sorata 2 years ago
parent
commit
b3c38f96ec
  1. 12
      %E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md

12
%E9%A2%91%E8%B0%B1%E6%A0%B7%E5%BC%8F%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B.md

@ -29,10 +29,12 @@ ADV-Plugin的插件接口Qml文件一般使用QtObject,其必须包括`style`(
- `configs`:只读,若此样式包含配置项,则其值为`preference`组件所保存的设置值(JSON格式);否则为`undefined`。
- `onAudioDataUpdeted`:可写,数据更新时的处理代码,带有一个长度为129数组参数:`data`。前64个数据为左声道FFT数据,后64个数据为右声道FFT数据,每一个声道的FFT数据位从低到高对应频谱频率的由低到高。最后一个数据为动态归一化的峰值数据(自动归一化时,第i个频谱数据大小 = `data[i]/data[128]`)。
- `onConfigsUpdated`:可写,属性`configs`或者`context`改变时的处理代码,函数无参数。
- `onCompleted`:可写,组件加载完成时调用,可进行一些初始化操作。
- `requestPaint`:函数,调用此函数使Canvas绘制图形。
### `preference`属性
`AdvpStyleTemplate`的`preference`属性也为`Component`类型,为样式的可配置选项。推荐使用`top.mashiros.widget.advp/qml/api`路径下的`AdvpPreference.qml`组件,其为`NERvGear.Preferences.PreferenceGroup`的封装,支持NERvGear.Preferences中的各种Preference组件。其中的`AdvpPreference`组件的`version`属性为版本号,默认为空字符串`""`。可在选项列表的最上方查看到`version`值,若为空则不显示。
为防止选项更新后导致插件错误,同时尽可能保留用户设置,版本号更新后会自动将历史挂件设置值与现有版本的选项默认值合并更新,效果参考`Object.assign`操作,且支持嵌套的一级子对象的更新操作,如:
- `onVersionUpdated`:可写,版本更新时的处理代码,带有一个参数`old`,为旧版本号。默认调用`updateObject`函数进行处理。
- `updateObject`:函数,更新对象值,效果参考Object.assign操作,且支持嵌套的一级子对象的更新操作。
如非必要,推荐不写覆盖`onVersionUpdated`,使用默认值可防止选项更新后导致插件错误,同时尽可能保留用户设置。版本号更新后,默认会将历史挂件设置值与现有版本的选项默认值合并更新,效果参考`Object.assign`操作,且支持嵌套的一级子对象的更新操作,如:
```javascript
更新前设置值:
{"demo":{"data1":1}}
@ -42,6 +44,10 @@ ADV-Plugin的插件接口Qml文件一般使用QtObject,其必须包括`style`(
{"demo":{"data1":1,"data2":3}}
```
**注意:旧设置会覆盖新设置,并添加新增设置,尽量避免更改旧设置的数据类型以免造成插件错误,尽量避免使用两级以上的对象嵌套,如`{"demo":{"demo1":{"data":0}}}`。**
### `preference`属性
`AdvpStyleTemplate`的`preference`属性也为`Component`类型,为样式的可配置选项。推荐使用`top.mashiros.widget.advp/qml/api`路径下的`AdvpPreference.qml`组件,其为`NERvGear.Preferences.PreferenceGroup`的封装,支持NERvGear.Preferences中的各种Preference组件。其中的`AdvpPreference`组件的`version`属性为版本号,默认为空字符串`""`。可在选项列表的最上方查看到`version`值,若为空则不显示。
### `defaultValues`属性
`AdvpStyleTemplate`的`defaultValues`属性为`var`类型,其主要是`preference`配置项的值,为`Object`。因为插件默认配置为`defaultValues`的配置,所以`preference`组件中的默认值推荐使用`defaultValues`中的值。

Loading…
Cancel
Save