简介:在线涂鸦和标注功能提升了用户的网页交互体验,类似于QQ截图。wPaint是一个基于jQuery的开源插件,它提供了一套完整的绘图工具箱,使得开发者能够轻松地在网页上集成类似桌面软件的画图功能。本文探讨了wPaint的工作原理、主要功能,并详细说明了如何将其集成到项目中,包括如何利用API和事件来自定义功能。
1. wPaint涂鸦插件功能介绍
wPaint涂鸦插件是一种革命性的在线图像编辑工具,它的简单易用使得网络图像处理和分享变得更加便捷。这个工具由一群有着共同理想的IT专家开发,他们希望把图像编辑的快乐带给全世界的网民。wPaint涂鸦插件的设计理念是“所见即所得”,用户可以在任何支持的网页浏览器上直接对图片进行涂鸦,编辑,分享等操作,无需安装任何额外的软件。
wPaint的核心功能包括但不限于:画笔、橡皮擦、文字编辑、颜色选择、图层管理等。这些功能让wPaint在众多在线图像编辑工具中脱颖而出。更值得一提的是,wPaint插件还支持多种浏览器,无论是Chrome,Firefox,还是Safari,都可以无缝使用。无论你是图像编辑的初学者,还是有多年经验的设计师,wPaint涂鸦插件都能满足你的需求。
使用wPaint插件,你可以快速将想法变成图像,将草图变成成品,将无聊的图片变成有趣的涂鸦作品。它是每一个需要图像编辑功能的网站必备的工具,无论是个人博客,社区论坛,还是在线教育平台。而且,wPaint涂鸦插件还支持自定义扩展,这意味着你可以根据自己的需求,增加或减少特定的功能,以适应不同的使用场景。
总的来说,wPaint涂鸦插件是一个功能强大,使用方便,兼容性好的在线图像编辑工具,它的出现,让网络图像编辑变得前所未有的简单和有趣。
2. 在线标注与截图体验
2.1 wPaint的基本使用方法
2.1.1 界面布局与功能模块解析
wPaint插件的界面布局设计旨在提供简洁直观的用户体验。通过清晰的标签和按钮组织功能模块,用户可以迅速找到所需的工具。界面通常包含以下主要部分:
- 工具栏 :提供各种绘制工具,如线条、矩形、圆形、文本和橡皮擦等。
- 颜色选择器 :允许用户选择前景色和背景色。
- 画布区域 :用户在此区域进行绘图。
- 控制面板 :提供对画布大小、保存和撤销等功能的控制。
用户可以通过拖动或调整大小来重新定位界面元素,以满足个人偏好。这种灵活性是通过JavaScript实现的动态DOM操作,允许元素根据用户交互进行实时更新。
// JavaScript代码示例:调整工具栏大小
function resizeToolbar(width) {
var toolbar = document.getElementById('toolbar');
toolbar.style.width = width + 'px';
}
// 调用函数,设置宽度为400像素
resizeToolbar(400);
上述代码演示了如何通过JavaScript动态调整工具栏宽度。根据传入的参数 width
,工具栏的样式宽度属性被设置为新的值。
2.1.2 标注工具和颜色选择
标注工具是wPaint的核心功能之一,它允许用户在图像上添加注释、指示和其他文本信息。颜色选择器则进一步扩展了这种能力,提供了前景色和背景色的调整选项。
- 标注工具 :用户可以使用不同类型的标记笔(如钢笔、荧光笔)来突出显示图像的特定部分。这些工具支持自定义的笔触大小和颜色。
- 颜色选择器 :用户可以通过点击选择器中的颜色块来更改工具的颜色。wPaint支持从预设的颜色方案中选择,也可以输入RGB值来定义独特的颜色。
颜色选择器的实现通常涉及到HTML颜色拾取器控件,这些控件允许用户通过图形界面选择颜色值。
<!-- HTML颜色选择器控件 -->
<input type="color" id="colorPicker">
2.2 截图与标注流程
2.2.1 快速截图的步骤
wPaint集成了快速截图功能,使得用户能够快速捕获屏幕的一部分并直接进行编辑。以下是截图功能的简要步骤:
- 启动截图模式 :点击界面中的截图按钮,进入截图模式。
- 选择截图区域 :使用鼠标拖动选择需要截图的区域。
- 完成截图并编辑 :释放鼠标完成截图,然后可以使用wPaint的标注工具对截图进行编辑。
此过程中,通过JavaScript控制截图工具的激活和捕捉过程。
// JavaScript代码示例:触发截图模式
function triggerScreenshotMode() {
// 代码逻辑:激活截图模式,并准备用户选择区域
console.log('截图模式已启动');
}
// 绑定按钮点击事件,启动截图模式
document.getElementById('screenshotBtn').addEventListener('click', triggerScreenshotMode);
2.2.2 详细标注流程指南
用户在完成截图后进入标注流程,该流程涉及以下详细步骤:
- 选择标注工具 :根据需要突出显示的内容选择合适的标注工具,例如箭头、矩形框、文字说明等。
- 进行标注 :使用选定工具在截图上进行标注。可以通过拖动鼠标绘制形状,或点击来添加文本。
- 调整标注属性 :更改标注的大小、颜色、透明度等属性,以达到理想的视觉效果。
- 保存标注结果 :完成所有标注后,可以选择保存编辑的图像或分享给他人。
此过程中,CSS负责样式调整,而JavaScript则处理标注属性的动态调整。
/* CSS样式示例:设置标注样式 */
.annotation {
stroke: blue; /* 设置描边颜色 */
fill: none; /* 无填充 */
stroke-width: 2px; /* 描边宽度 */
}
2.3 用户体验优化
2.3.1 响应式设计与操作流畅性
为了确保wPaint在各种设备上都有良好的用户体验,开发者采用了响应式设计。这意味着wPaint界面会根据用户的屏幕尺寸和分辨率自动调整布局。
- 适应不同屏幕尺寸 :通过媒体查询(media queries)来调整布局和元素大小。
- 优化触控操作 :简化手势识别和处理流程,使得触控设备上的操作更加流畅。
优化代码示例如下:
/* CSS媒体查询示例:响应式布局 */
@media screen and (max-width: 600px) {
.toolbar {
flex-direction: column; /* 垂直排列工具栏 */
}
}
2.3.2 便捷的快捷键操作
为了提供更高效的用户体验,wPaint支持快捷键操作,用户可以通过组合键盘按键来执行常见操作,如保存、撤销等。
- 快捷键列表 :列出所有可用快捷键及其对应的操作。
- 自定义快捷键 :允许高级用户根据个人习惯定义自己的快捷键。
快捷键操作实现的JavaScript代码片段可能如下:
// JavaScript代码示例:快捷键保存功能
document.addEventListener('keydown', function(event) {
if (event.key === 's' && event.ctrlKey) { // 按下Ctrl+S
saveDrawing();
}
});
function saveDrawing() {
// 代码逻辑:保存绘图到服务器或本地
console.log('绘图已保存');
}
在本章节中,我们深入探讨了wPaint的基础使用方法,包括界面布局、功能模块的解析,以及截图和标注流程的详细介绍。此外,还讨论了如何优化用户体验,以确保界面的响应性和操作的便捷性。wPaint作为一个在线涂鸦插件,在提供基本绘图工具的同时,也通过快捷键和响应式设计等特性,提升了用户的互动体验。
3. wPaint插件与jQuery结合使用方法
3.1 jQuery基础与wPaint整合概述
3.1.1 jQuery的作用与特点
jQuery是一个快速、小巧且功能丰富的JavaScript库。它通过一种简单的方式使HTML文档遍历和操作、事件处理、动画和Ajax成为可能,极大地简化了JavaScript编程。wPaint涂鸦插件可与jQuery无缝结合,通过jQuery能够轻松实现对wPaint的初始化和动态调用,以在网页中嵌入强大的图像处理能力。
3.1.2 wPaint插件在jQuery中的初始化
要在jQuery中初始化wPaint插件,首先需要确保已经在页面中引入了jQuery库和wPaint的JavaScript文件。初始化的基本代码如下:
$(document).ready(function(){
$("#myCanvas").wPaint();
});
在上述代码中, $(document).ready()
是一个jQuery函数,确保DOM完全加载后执行函数内的代码。 $("#myCanvas")
选择了页面上ID为 myCanvas
的元素, wPaint()
是在该元素上调用wPaint插件的函数。
3.2 jQuery动态调用wPaint功能
3.2.1 通过jQuery触发wPaint事件
wPaint插件支持多种事件,比如 beforeDraw
, afterDraw
, beforeClear
, afterClear
等。我们可以使用jQuery来监听这些事件,并在事件发生时执行特定的代码。例如,下面的代码展示了如何在画布绘制前触发一个警告:
$("#myCanvas").on('beforeDraw', function(e){
alert("开始绘画,请稍候!");
});
3.2.2 jQuery中的wPaint自定义选项
wPaint允许开发者设置各种自定义选项来满足不同的需求。在jQuery中,可以通过传递一个选项对象给 wPaint
函数来设置这些选项。比如,可以设置背景色、工具栏显示与否等:
$("#myCanvas").wPaint({
toolbar : false,
backgroundColor : 'black'
});
在这个例子中, toolbar
被设置为 false
表示不显示wPaint的工具栏, backgroundColor
设置为 'black' 表示画布的背景色被设置为黑色。
3.3 jQuery与wPaint的交互应用实例
为了深入理解如何使用jQuery结合wPaint进行页面交互,让我们考虑一个实际的应用场景:在wPaint画布上进行涂鸦,并在完成后将作品保存到服务器。
保存到服务器
$("#saveButton").click(function(){
var imgData = $("#myCanvas").wPaint('toDataURL');
$.ajax({
type: "POST",
url: "saveImage.php",
data: {image: imgData},
success: function(response){
alert("图片保存成功!");
},
error: function(){
alert("图片保存失败!");
}
});
});
这段代码通过jQuery为一个按钮绑定了点击事件,当按钮被点击时,使用 wPaint('toDataURL')
方法获取当前画布的数据URL,然后通过AJAX将数据发送到服务器端的 saveImage.php
文件进行处理。成功或失败都会有相应的提示信息。
通过上述示例,展示了wPaint插件与jQuery结合使用时的强大功能和灵活性,可以实现丰富的动态交互效果。接下来的章节将继续探索wPaint涂鸦插件的更多高级用法和技术细节。
4. 涂鸦区域构建与初始化
在数字世界中,虚拟涂鸦为用户带来了表达创意的新方式。本章节深入探讨wPaint涂鸦插件的核心元素——涂鸦区域的构建与初始化过程。我们会详细分析涂鸦区域的技术框架,以及在初始化过程中不可或缺的关键设置和配置选项。
4.1 涂鸦区域的技术框架解析
4.1.1 HTML结构与Canvas元素
首先,wPaint涂鸦插件的界面建立在HTML结构之上,通过 <canvas>
标签嵌入绘图区域。 <canvas>
是一个可以使用JavaScript中的脚本(通常是Canvas API或 WebGL)进行图形操作的HTML元素。它为涂鸦提供了可绘制的画布,允许用户利用JavaScript直接在屏幕上绘制图形。
<!DOCTYPE html>
<html>
<head>
<title>wPaint 涂鸦插件使用示例</title>
</head>
<body>
<div id="drawing-area">
<canvas id="myCanvas" width="500" height="500"></canvas>
</div>
<script src="wPaint.js"></script>
<script src="app.js"></script>
</body>
</html>
在上述基础HTML代码中, <div id="drawing-area">
定义了一个容器,内部嵌套了 <canvas id="myCanvas">
元素,为wPaint插件提供了绘图的空间。接下来,我们通过JavaScript来引入wPaint插件,并对画布进行初始化操作。
4.1.2 CSS样式与布局调整
在wPaint涂鸦插件中,CSS样式用于定义画布的外观和布局。这包括画布的尺寸、边距、背景色等属性,这些属性决定了用户看到的涂鸦界面。
#drawing-area {
width: 500px;
height: 500px;
margin: 20px auto;
background-color: #ffffff;
position: relative;
border: 1px solid #000;
}
#myCanvas {
display: block;
}
通过上述CSS代码,我们设置了绘图区域的宽度、高度和居中显示,定义了画布的背景色和边框样式,确保了涂鸦区域的视觉呈现。接下来的JavaScript初始化代码将更进一步地实现涂鸦功能。
4.2 初始化过程中的关键设置
4.2.1 JavaScript初始化代码详解
wPaint插件的初始化过程涉及加载必要的资源并配置画布。以下代码展示了如何初始化wPaint插件,并设置一些基本的属性。
document.addEventListener('DOMContentLoaded', (event) => {
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// 初始化wPaint插件
wPaint({
canvas: canvas,
context: context,
tools: ['pencil', 'brush', 'line', 'rectangle', 'ellipse', 'eraser'],
colors: ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF'],
thickness: [1, 3, 5]
});
// 添加自定义工具
wPaint.addTool({
name: 'calligraphy',
icon: 'calligraphy.png',
action: function (context, x, y, data) {
// 自定义涂鸦行为
context.lineCap = 'round';
context.lineJoin = 'round';
context.lineWidth = data.thickness;
context.strokeStyle = data.color;
context.beginPath();
context.moveTo(x, y);
context.lineTo(x + 20, y - 20);
context.stroke();
}
});
});
在这段JavaScript代码中,我们首先在文档加载完成后初始化画布,并为wPaint插件定义了一系列工具、颜色和笔触粗细选项。我们还自定义了一个名为“calligraphy”的新工具,该工具执行自定义的涂鸦动作。这段代码的执行使得画布具备了涂鸦功能,接下来我们详细解释代码的逻辑。
4.2.2 配置选项与参数定制
wPaint插件的初始化配置选项非常灵活。开发者可以根据需要定制画笔颜色、工具类型、笔触粗细、橡皮擦大小等。这些选项在初始化时通过JavaScript对象的形式传递给插件。
var customOptions = {
tools: ['pencil', 'brush', 'line', 'rectangle', 'ellipse', 'eraser', 'calligraphy'],
colors: ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#000000'],
thickness: [1, 2, 3, 4, 5, 6],
eraserSize: 10
};
wPaint({
canvas: canvas,
context: context,
options: customOptions
});
以上代码显示了如何为wPaint插件定制配置选项,增加了工具选项、颜色选项、笔触粗细选项及橡皮擦大小。这样的定制使得wPaint能够更好地满足特定的应用场景和用户需求。
4.3 涂鸦工具与设置初始化
4.3.1 工具栏的创建与配置
wPaint插件提供的工具栏允许用户快速选择不同的绘图工具。开发者可以预先设置工具栏中将出现的工具。
wPaint.toolbar({
tools: ['brush', 'line', 'rectangle', 'ellipse', 'text', 'image'],
toolsPos: 'left', // 'left', 'top', 'right', 'bottom'
align: 'stretch'
});
这段代码创建了一个工具栏,并指定了工具栏中的工具和位置。我们可以看到,开发者可以将工具栏放置在画布的左侧、顶部、右侧或底部,还可以设置工具栏的对齐方式。
4.3.2 颜色和笔触选项初始化
颜色和笔触选项是涂鸦工具的重要组成部分。它们允许用户根据自己的喜好和项目需求来选择笔触颜色和粗细。
wPaint.color({
colors: ['#FF0000', '#00FF00', '#0000FF'],
defaultColor: '#FF0000',
changeEvent: 'wPaintColorChange'
});
此代码段初始化了一个颜色选择器,提供了三个预设的颜色供用户选择。用户可以自定义颜色列表,也可以指定默认颜色。此外,当用户更改颜色时,可以触发 wPaintColorChange
事件。
通过以上几个方面的深入探讨,我们了解到构建和初始化wPaint涂鸦区域需要考虑的技术框架、关键设置以及工具和配置选项。这些内容不仅对插件功能的实现至关重要,也为用户提供了高度定制化的涂鸦体验。在下一章中,我们将进一步探索如何将wPaint与jQuery结合,从而让涂鸦功能更加丰富多彩。
5. wPaint API和事件自定义
5.1 wPaint API应用详解
5.1.1 API的调用语法与功能介绍
wPaint不仅提供了直观的图形用户界面,还通过API(应用程序编程接口)支持开发者进行高级定制和集成。API允许开发者通过代码控制wPaint的各种功能,包括但不限于图像的加载与保存、绘图工具的切换、颜色的更改等。这些API都是以JavaScript的形式提供,因此熟悉JavaScript的开发者可以很快上手。
API的调用语法非常直观,一般形式为 wPaintInstance.apiName(parameters)
,其中 wPaintInstance
是wPaint实例化的对象, apiName
是你想要调用的API名称,而 parameters
则是传递给API的参数。例如,调用 loadImage
方法加载一张图片到涂鸦区域:
wPaintInstance.loadImage('/path/to/image.jpg');
5.1.2 常见API功能的实践应用
为了展示如何实践应用wPaint的API,我们下面来看看几个实用的功能示例。
加载与保存图片 在使用wPaint进行绘图之前,我们经常需要加载一张图片作为参考,或在绘图完成后保存我们的作品。使用 loadImage
API可以实现加载图片的需求:
// 加载图片示例
wPaintInstance.loadImage('image.jpg');
保存图片则可以使用 saveImage
API:
// 保存图片示例
wPaintInstance.saveImage('image.png');
切换工具和颜色 在绘图过程中,我们可能需要切换使用的工具或颜色。通过API,可以轻松实现这一操作:
// 切换到橡皮擦工具
wPaintInstance.setTool('eraser');
// 设置颜色为蓝色
wPaintInstance.setColor('#0000FF');
设置画笔大小 调整画笔大小是绘图时的常见需求,可以通过 setSize
API进行设置:
// 设置画笔大小为5像素
wPaintInstance.setSize(5);
以上API调用展示了wPaint的灵活性,开发者可以依据具体的需求,编写相应的逻辑来控制wPaint的行为。
5.2 事件监听与自定义
5.2.1 事件类型与触发条件
事件是wPaint响应用户操作的一种方式。wPaint中的事件类型主要包括: onStart
, onMove
, onStop
, onChangeTool
, onChangeColor
, onChangeSize
等。这些事件在特定的用户操作下被触发。
例如: - onStart
事件在用户开始绘制时触发。 - onChangeTool
事件在用户切换工具时触发。 - onChangeColor
事件在用户改变颜色时触发。
每个事件都有其触发条件和适用场景,开发者可以根据实际需要进行监听和处理。
5.2.2 如何使用jQuery自定义wPaint事件处理
为了使事件处理更加灵活,wPaint允许开发者通过jQuery来绑定自定义事件。首先需要初始化wPaint插件,然后使用jQuery的 .on()
方法来监听事件,并提供相应的回调函数。
// 初始化wPaint
$('#wPaintContainer').wPaint(...);
// 使用jQuery监听onStart事件
$('#wPaintContainer').on('onStart', function(event, wPaintInstance){
console.log('开始绘制', wPaintInstance);
});
// 使用jQuery监听onChangeTool事件
$('#wPaintContainer').on('onChangeTool', function(event, wPaintInstance, tool){
console.log('工具切换为', tool, '当前实例', wPaintInstance);
});
在上述代码中,我们监听了 onStart
和 onChangeTool
两个事件。当事件发生时,会自动执行相应的回调函数,其中 event
参数代表事件本身, wPaintInstance
是当前的wPaint实例对象, tool
则是变更后的工具名称。
自定义事件使得开发者可以更精细地控制wPaint的行为,满足特定的业务需求,提供更好的用户体验。
6. 保存和恢复绘图状态
6.1 绘图状态的保存机制
6.1.1 数据保存与存储策略
在wPaint涂鸦插件中,为了能够随时保存用户的绘图状态,通常采用的是在浏览器端通过Web存储API(如localStorage或sessionStorage)来持久化用户数据。这种方法不需要服务器端的额外支持,便于实现,并能快速读取数据以恢复绘图状态。
使用localStorage进行数据保存的策略如下: - 将用户的绘图操作转换为一个JSON字符串,包括所有的涂鸦元素、颜色、笔触大小等。 - 每当用户完成一定的绘图操作后,便触发保存动作,将当前的绘图状态存入localStorage。 - 在存储之前,可以对JSON字符串进行压缩,以节省存储空间。 - 为了避免大量数据占用过多存储空间,可以设置一个保存周期,比如每隔一定时间或者用户完成特定操作后保存一次。
6.1.2 保存功能的实现与调用
保存功能可以通过绑定一个保存按钮或者利用定时器自动保存,以减少用户手动操作的需要。具体实现可以编写以下JavaScript代码段:
// 假设已经初始化了一个wPaint实例
var wPaintInstance = new wPaint(...);
// 保存当前绘图状态的函数
function saveDrawingState() {
var drawingData = wPaintInstance.getData(); // 获取当前画布数据
var compressedData = compressData(drawingData); // 压缩数据(此处为示例函数)
localStorage.setItem('wPaintData', compressedData); // 存入localStorage
}
// 绑定保存按钮事件
document.getElementById('saveButton').addEventListener('click', saveDrawingState);
// 或者设置定时自动保存
setInterval(saveDrawingState, 30000); // 每30秒自动保存一次
6.2 绘图状态的恢复与导出
6.2.1 恢复操作的实现方法
当用户希望恢复到之前的绘图状态时,可以通过以下步骤实现: - 从localStorage中读取存储的绘图状态数据。 - 解析JSON字符串以获取绘图数据。 - 使用wPaint的 setData
方法将数据恢复到画布上。
具体代码如下:
// 读取并恢复绘图状态
function restoreDrawingState() {
var savedData = localStorage.getItem('wPaintData'); // 从localStorage获取数据
if (savedData) {
var drawingData = JSON.parse(decompressData(savedData)); // 解压缩数据(此处为示例函数)
wPaintInstance.setData(drawingData); // 将数据恢复到wPaint实例中
}
}
// 绑定恢复按钮事件
document.getElementById('restoreButton').addEventListener('click', restoreDrawingState);
6.2.2 图片格式导出的步骤与注意事项
wPaint插件还提供了将当前画布导出为图片的功能,这对于用户分享作品尤为重要。以下是使用wPaint导出图片的步骤:
- 调用wPaint实例的
toImage
方法获取图片元素。 - 为图片元素添加必要的属性,例如alt描述、宽度和高度。
- 将图片元素添加到文档中,使用
toDataURL
方法获取图片的URL编码。 - 可以通过创建一个链接(a标签)并模拟点击,实现图片的下载。
示例代码:
// 导出图片并触发下载
function exportImage() {
var imageDataURL = wPaintInstance.toImage().toDataURL(); // 获取图片的URL编码
var link = document.createElement('a');
link.download = 'wPaintExport.png'; // 设置下载的文件名
link.href = imageDataURL;
link.click(); // 模拟点击触发下载
}
// 绑定导出按钮事件
document.getElementById('exportButton').addEventListener('click', exportImage);
注意事项: - 当导出图片时,确保所有绘图操作已经完成,避免导出的图片中缺少最新的绘制内容。 - 考虑到浏览器的安全限制,某些情况下无法直接导出图片到本地文件系统,需要通过模拟用户操作来实现。
6.3 在项目中的集成与应用
6.3.1 wPaint集成前的准备工作
在将wPaint插件集成到实际项目中时,需要做好以下准备工作: - 确认项目中是否已引入wPaint及其依赖(如jQuery)。 - 根据项目需求调整wPaint初始化的配置参数。 - 设计保存和恢复状态的逻辑流程,与项目中的其他功能进行协调。 - 测试wPaint在项目中的表现,确保其在各种浏览器和设备上均能正常工作。
6.3.2 实际项目中的应用案例分析
假设在一个在线教学平台上,学生需要提交手绘作品作为作业的一部分。通过集成wPaint插件,我们可以提供一个在线绘图功能,使得学生可以直接在浏览器中完成作业,并保存自己的绘制进度。
具体应用案例分析:
- 在每个作业详情页面嵌入wPaint涂鸦工具。
- 提供"保存草稿"按钮,学生随时保存当前作品状态。
- 在完成作品后,学生点击"提交作业"按钮,触发绘制状态的导出,并保存到后端服务器。
- 老师可以下载学生提交的图片,并进行评分。
通过该案例,我们可以看到wPaint在实际项目中的强大功能和灵活性。其保存和恢复机制大大提高了用户的绘图体验,并为集成方提供了方便的数据交互接口。
简介:在线涂鸦和标注功能提升了用户的网页交互体验,类似于QQ截图。wPaint是一个基于jQuery的开源插件,它提供了一套完整的绘图工具箱,使得开发者能够轻松地在网页上集成类似桌面软件的画图功能。本文探讨了wPaint的工作原理、主要功能,并详细说明了如何将其集成到项目中,包括如何利用API和事件来自定义功能。