# ScrollText 组件 API 文档
本文档由 `DeepSeek R1` 模型生成并微调。
---
## 核心特性
- **自动滚动**:支持设定滚动速度的纵向滚动效果
- **长文本支持**:内置高性能文本渲染引擎
- **精准控制**:提供播放/暂停/调速等操作接口
- **智能布局**:自动计算文本高度和滚动距离
---
## Props 属性说明
```mermaid
graph LR
ScrollTextProps --> TextContentProps
ScrollTextProps --> ScrollProps
click TextContentProps "./组件%20TextContent"
click ScrollProps "./组件%20Scroll"
```
完全继承 `TextContent` 组件和 `Scroll` 组件的参数和事件。
| 属性名 | 类型 | 默认值 | 描述 |
| ------- | ---------------- | ------ | --------------------------- |
| `speed` | `number` | 必填 | 滚动速度(像素/秒) |
| `width` | `number` | 必填 | 文本区域固定宽度(像素) |
| `loc` | `ElementLocator` | 必填 | 容器定位 [x,y,width,height] |
| `pad` | `number` | `16` | 首行前空白距离(像素) |
---
## 事件说明
| 事件名 | 参数 | 触发时机 |
| ----------- | ---- | -------------------- |
| `scrollEnd` | - | 滚动到文本末尾时触发 |
---
## Exposed Methods 暴露方法
| 方法名 | 参数 | 返回值 | 描述 |
| ---------- | --------------- | ------ | --------------------------- |
| `pause` | - | void | 暂停滚动 |
| `resume` | - | void | 继续滚动 |
| `setSpeed` | `speed: number` | void | 动态调整滚动速度(像素/秒) |
| `rescroll` | - | void | 立即重置到起始位置重新滚动 |
---
## 使用示例
### 基础滚动
```tsx
import { defineComponent } from 'vue';
import { ScrollText } from '@user/client-modules';
export const MyCom = defineComponent(() => {
const longText = '序幕\n'.repeat(100) + '——全剧终——';
return () => (
);
});
```
### 动态控制
```tsx
import { defineComponent, ref } from 'vue';
import { ScrollText } from '@user/client-modules';
export const MyCom = defineComponent(() => {
const longText = '序幕\n'.repeat(100) + '——全剧终——';
const scrollRef = ref();
// 暂停/恢复控制
const toggleScroll = () => {
if (scrollRef.value?.isPaused) {
scrollRef.value.resume();
} else {
scrollRef.value?.pause();
}
};
// 速度控制
const accelerate = () => {
scrollRef.value?.setSpeed(200);
};
return () => (
console.log('滚动结束')}
/>
);
});
```
### 复杂排版
```tsx
const staffText =
'\\c[32]====制作人员====\\c\n\n' +
'\\r[#FFD700]总监督\\r\t\t张三\n' +
'\\r[#00FF00]美术指导\\r\\t李四\n' +
'\\i[logo]\n' +
'特别感谢:某某公司';
;
```
---
## 注意事项
1. **容器尺寸**
实际可滚动区域计算公式:
```
可视高度 = loc[3](容器高度)
滚动距离 = 文本总高度 + pad(首行前空白)
```
2. **速度控制**
推荐速度范围 50-200 像素/秒
3. **组合动画**
可与容器变换配合实现复杂效果:
```tsx
```