简介:本教程资源包旨在帮助用户通过实际操作学习FlashCC软件,掌握创建整站动画的技能。教程内容分为五篇,涵盖了基础入门、骨骼动画、网站布局、音频视频集成、高级组件开发等多个层面。源文件包括最新及CS3版本,以助于学习者了解软件功能及历史演变。通过本教程,学习者将能够独立完成高质量的整站动画项目,提升技术能力及创新思维。
1. FlashCC基础知识和入门操作
在本章中,我们将介绍Adobe Flash Professional的后继者——Adobe Animate CC,它通常被称作FlashCC。我们将从基础知识开始,带领读者快速掌握软件的界面布局、工具使用以及项目创建等入门操作。
1.1 认识FlashCC界面
首先,打开FlashCC,映入眼帘的是一个包含菜单栏、工具栏、时间轴、舞台和属性面板的工作区域。了解每个面板的作用及其在动画制作中的角色至关重要。
1.2 创建新项目
创建新项目时,要选择合适的模板。FlashCC支持多种动画类型,例如ActionScript 3.0、HTML5 Canvas、WebGL等。根据你的需求选择适当的模板,可以让你的项目搭建更为高效。
1.3 工具栏和面板的使用
了解并熟练掌握工具栏中的绘图工具、文本工具和其他辅助工具,是进行创意设计的基础。同时,通过自定义面板布局可以提高你的工作效率。
通过本章的介绍,我们为初学者们打下了坚实的基础,接下来,你将进入更专业的动画制作领域。随着章节的深入,你将逐步解锁FlashCC的高级功能,使你的创意得到完美的体现。
2. 绘制矢量图形及简单动画
2.1 矢量图形的绘制技巧
2.1.1 理解矢量图形的构成
在数字图形设计中,矢量图形是一种非常重要的格式,尤其在需要无限放大图形而不失真的情况下。矢量图形是由路径构成的,路径是由直线和曲线组成,用于定义图形的形状。矢量图形的基本构成包括点(锚点)、线段(锚点之间的连接)以及方向点(用来控制线段的方向和曲率)。
-
锚点 :锚点是构成路径的基本元素,它确定了路径上某个固定的位置。在矢量图形软件中,锚点可以是角点或者平滑点。角点用来形成尖锐的角度,而平滑点则创建平滑的曲线。
-
线段 :线段是连接两个锚点之间的直线或曲线段,它们通过锚点连接起来定义图形的轮廓。
-
方向点 :方向点与锚点相关联,用来控制曲线的形状。每个平滑点两侧都会有一对方向线,方向线的长度和角度决定了曲线的弯曲程度。
2.1.2 掌握基本绘图工具的使用
要熟练绘制矢量图形,了解并掌握几个关键的绘图工具是必不可少的。以下是一些常见的绘图工具及其用途:
-
钢笔工具 :钢笔工具是矢量绘图中最基础也是最重要的工具之一,用于创建精确的锚点和路径。
-
形状工具 :形状工具包括矩形、圆形、多边形等,能够快速绘制基本的几何图形。
-
画笔工具 :画笔工具允许用户绘制自由的线条和路径,并可设置画笔的样式和宽度。
-
文本工具 :用于在画布上添加文本,并且支持文本的多种编辑和样式设置。
2.2 简单动画的创建流程
2.2.1 设定关键帧和帧序列
在FlashCC中制作动画时,关键帧是一个核心概念。关键帧定义了动画中重要时刻的画面,而FlashCC会自动生成中间帧(过渡帧),以形成平滑的动画效果。设定关键帧和帧序列的基本步骤如下:
-
创建新动画 :启动FlashCC,创建一个新项目,并设置合适的帧速率。
-
定义关键帧 :在时间轴上,点击某个帧格,然后按"F6"键可以插入一个关键帧。
-
编辑关键帧内容 :在关键帧中绘制或放置需要动态变化的对象。例如,画一个图形,并在下一个关键帧中改变它的位置、大小或颜色。
-
预览动画 :可以通过时间轴下方的播放按钮来预览动画,检查是否流畅和符合预期。
2.2.2 应用补间动画与形状补间
补间动画是让对象在两个关键帧之间自动变化的技术。形状补间则可以制作出形状变化的动画效果。
-
动作补间 :用于制作对象的位置、大小、透明度等属性变化的动画。选中两个关键帧之间的帧区域,然后在属性面板中选择“动作补间”选项。
-
形状补间 :用于创建形状变化的动画。确保两个关键帧中的对象不是同一实例,然后选中关键帧之间的帧区域,在属性面板中选择“形状补间”。
2.2.3 动画的优化与预览技巧
优化动画不仅是为了提高动画性能,也是为了减少最终发布文件的大小。以下是一些优化与预览的技巧:
-
压缩图像和音频资源 :在发布前,确保所有资源都尽可能压缩,以减少文件体积。
-
使用帧频控制 :设定合适的帧速率可以确保动画运行流畅,同时减少资源消耗。
-
测试预览 :使用FlashCC的测试预览功能,反复检查动画效果,确保没有意外的错误或者卡顿。
-
硬件加速 :如果目标平台支持,可以开启硬件加速功能,以提高动画的渲染性能。
在动画制作过程中,掌握这些技巧对于创建高效的动画至关重要。随着经验的积累,你会发现这些技术的灵活运用会极大提升你的作品质量。
3. 骨骼动画与时间轴控制
骨骼动画作为一种强大的动画技术,它允许我们通过调整一个对象内的“骨骼”来控制其外观和运动,从而创建出更为复杂和自然的动画效果。时间轴控制是动画制作中不可或缺的环节,它让我们能够精确控制动画的播放时间和节奏。本章将介绍骨骼动画的基本原理以及时间轴的高级运用技巧。
3.1 骨骼动画的基本原理
骨骼动画主要是通过骨骼(Bone)和绑定(Skinning)的概念来实现的。骨骼就像是动画对象的“骨架”,定义了动作的基本路径和结构;绑定则将骨骼与对象的皮肤(即表面)相关联,以便骨骼的动作能带动表面的形变。
3.1.1 骨骼与绑定概念
骨骼是动画中的虚拟骨架,它们通常在对象内部以层级结构排列,类似于人体骨骼。通过改变骨骼的位置和角度,我们可以模拟各种自然动作,如跑、跳、挥手等。
绑定是将对象的表面与骨骼相连接的过程。在FlashCC中,绑定可以通过以下方式实现:
- 自动绑定 :FlashCC根据骨骼和对象表面的相似性,自动匹配最接近的骨骼来创建绑定。
- 手动绑定 :通过拖放的方式,用户可以精确选择某个表面与特定骨骼相绑定。
- 权重工具 :用户可以调整绑定权重,即每个骨骼对表面影响的强度,以达到更自然的动画效果。
3.1.2 骨骼动画的创建步骤
骨骼动画的创建通常包括以下步骤:
- 创建骨骼 :首先,在FlashCC中,需要为动画创建一个或多个骨骼,并按照层级结构排列。
- 绑定骨骼与对象 :将需要动画的对象与骨骼通过绑定关联起来,确保动画过程中表面能跟随骨骼的运动。
- 设置关键帧 :为骨骼的动作设置关键帧,比如在时间轴上的不同时间点设置骨骼的位置和角度。
- 调整动画路径 :利用骨骼的层级关系和属性,调整其运动路径和速度,使得动画流畅自然。
- 测试与优化 :播放动画,检查其连贯性和流畅性,必要时进行调整和优化。
代码块展示和逻辑分析
// 骨骼动画基本原理示例代码
var bone = new Bone(); // 创建骨骼实例
var skin = new Skin(); // 创建皮肤实例
// 将皮肤绑定到骨骼
bone.bind(skin);
// 设置骨骼在动画中的关键帧
bone.setKeyFrame(0, {x:0, y:0, rotation:0});
bone.setKeyFrame(30, {x:100, y:100, rotation:45});
在上述代码中,我们创建了骨骼和皮肤的实例,并将皮肤绑定到骨骼上。接着,我们为骨骼设置了两个关键帧,分别是动画的第0帧和第30帧,并对骨骼的位置和旋转角度进行了定义。
3.2 时间轴的高级运用
时间轴是动画软件中用于组织、管理和编辑动画帧的界面。在FlashCC中,时间轴控制非常灵活,通过它可以实现复杂的动画效果。
3.2.1 时间轴特效应用
在FlashCC的时间轴中,可以应用多种特效来增强动画的视觉效果。例如:
- 过渡特效 :如淡入淡出、擦除等,可以应用在关键帧之间,为动画带来平滑的过渡。
- 颜色特效 :如亮度调整、色彩偏移等,可用于调整动画中特定帧的色彩表现。
- 滤镜特效 :如模糊、阴影等,可以为对象添加视觉上的深度和复杂性。
// 应用淡入淡出特效示例代码
var tween = new Tween(bone, 0, 30, {alpha:1}, {alpha:0}, 'easeOut');
tween.play();
在该示例中,我们创建了一个淡入淡出的动画,让骨骼从完全不透明(alpha:1)到完全透明(alpha:0)。
3.2.2 时间轴同步与异步控制
时间轴的同步与异步控制是动画制作中的高级技巧,它让多个动画按预定的节奏同时发生或独立进行。
- 同步控制 :确保动画在特定时间点同时开始和结束,适合创建协同动作。
- 异步控制 :让动画在不同时间开始或以不同的速度播放,以达到更复杂的动画效果。
Mermaid 流程图展示
graph TD
A[开始创建动画] --> B[设置时间轴特效]
B --> C[应用淡入淡出过渡]
C --> D[同步动画控制]
D --> E[异步动画控制]
E --> F[时间轴高级运用完成]
通过Mermaid流程图,我们可以清晰地展示时间轴控制的具体步骤。以上代码和流程图相结合,就构成了对FlashCC时间轴高级运用的直观理解。
4. ActionScript交互式设计
ActionScript是Flash平台的编程语言,它赋予了设计师和开发者在动画中加入交互元素的能力。本章将深入探讨ActionScript的基本语法、如何与动画进行交云、以及数据通信和动态内容更新的方法。
4.1 ActionScript基础语法
ActionScript作为一门编程语言,有其独特的语法规则,是交互式动画设计不可或缺的组成部分。我们将通过变量、函数、事件处理等基本元素开始深入学习。
4.1.1 变量、函数与事件处理
变量 是编程中用于存储数据的容器。在ActionScript中,声明变量时需要指定其类型,比如:
var myString:String = "Hello, ActionScript!";
var myNumber:Number = 42;
函数 是执行特定任务的代码块。在ActionScript中,可以创建接受参数并可返回值的函数,例如:
function sayHello(name:String):String {
return "Hello, " + name + "!";
}
trace(sayHello("ActionScript")); // 输出 "Hello, ActionScript!"
事件处理 是响应用户交互(如点击按钮)或系统事件(如加载电影剪辑)的过程。ActionScript允许我们为对象(如按钮或影片剪辑)绑定事件,如下示例中展示了如何在按钮上绑定点击事件:
button.addEventListener(MouseEvent.CLICK, handleClick);
function handleClick(event:MouseEvent):void {
trace("Button clicked!");
}
4.1.2 常见控制语句和循环结构
控制语句,如 if
、 else
、 for
和 while
,是编程逻辑中的核心。它们让程序根据不同的条件执行不同的代码块,以及重复执行代码直到满足特定条件。
var score:Number = 10;
if (score > 0) {
trace("Your score is " + score);
} else {
trace("No score available.");
}
for (var i:int = 0; i < score; i++) {
trace("Point gained!");
}
在以上示例中, if
语句检查分数是否大于0,如果是,则输出分数。 for
循环根据分数输出“Point gained!”相应次数。
4.2 ActionScript与动画的交互
ActionScript允许开发者控制动画流程,处理用户输入,更新动画内容。这一节会涵盖如何使用ActionScript来控制动画,以及如何通过数据通信更新动画内容。
4.2.1 动画控制与事件监听
动画的播放、停止、回放等都可以通过ActionScript进行控制。以下示例演示了如何通过脚本控制动画帧的播放:
// 播放到第10帧
this.gotoAndPlay(10);
// 停止在第10帧
this.gotoAndStop(10);
事件监听器可以响应用户或系统的事件。在ActionScript中,经常使用 addEventListener
来监听特定事件,如点击事件,然后通过相应的函数处理这些事件。
// 监听点击事件并响应
myMC.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
trace("MovieClip clicked.");
}
4.2.2 数据通信和动态内容更新
数据通信是通过网络发送或接收信息的过程,这在动态内容更新中非常重要。ActionScript可以使用 URLRequest
对象来发送HTTP请求,从服务器获取数据。
var request:URLRequest = new URLRequest("***");
request.method = URLRequestMethod.GET;
loader.load(request);
loader.dataFormat = LoaderDataFormat.TEXT;
loader.addEventListener(***PLETE, onLoadComplete);
function onLoadComplete(event:Event):void {
var data:String = Loader(event.target).content;
trace(data);
}
以上代码片段中, URLRequest
对象用于请求服务器上的一个文本文件。加载完成后,我们可以在 onLoadComplete
函数中处理这些数据。通过这种方式,动画可以接收并显示实时数据,从而实现动态更新。
我们已经介绍了ActionScript的基础语法,以及如何将这些语法应用到与动画的交互中。下一节将探讨如何创建动态按钮和视觉效果,以及如何实现与用户的互动元素。
5. 网站布局和导航设计
5.1 布局与样式设计基础
5.1.1 网站布局原则
为了实现一个直观、易用的网站设计,我们首先需要深入理解网站布局原则。布局是构建网站的基础,它决定着用户如何在页面间导航以及内容如何呈现。网站布局应遵循以下几点原则:
- 一致性 :确保网站的导航和布局在每个页面上保持一致,这样用户可以在浏览时形成稳定的预期。
- 简洁性 :页面不应过于拥挤,清晰的布局能更好地引导用户的视线和注意力。
- 可用性 :布局应该方便用户进行操作,例如,按钮、链接等交互元素应该容易点击。
- 响应式设计 :布局应该能够适应不同尺寸的屏幕和设备,确保用户体验的一致性。
5.1.2 使用样式表统一视觉效果
CSS样式表是控制网站视觉效果的关键工具,它可以帮助我们确保网站在视觉上的一致性和专业性。
- 全局样式定义 :设定网站的基础文字样式、颜色方案、字体等,这些都应反映网站的品牌形象。
- 布局样式 :使用CSS Grid或Flexbox等布局工具来管理页面布局,确保内容的组织和排列。
- 组件样式 :为按钮、表单元素、导航栏等常见组件定义样式,确保它们在网站各个部分的一致表现。
5.1.3 代码实现
下面是一个简单的CSS代码块,用于定义一个具有基本样式的响应式导航栏:
/* 基础样式 */
body {
font-family: Arial, sans-serif;
}
/* 导航栏样式 */
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
padding: 10px;
}
.navbar a {
color: white;
text-decoration: none;
padding: 10px 20px;
}
/* 响应式设计 */
@media (max-width: 600px) {
.navbar {
flex-direction: column;
}
.navbar a {
margin: 5px 0;
}
}
5.1.4 逻辑分析和参数说明
-
.navbar
类定义了一个flex容器,使得导航栏中的项水平排列,并且它们之间有空间分隔。 -
.navbar a
选择器用于改变链接的默认样式,比如背景色和内边距,以适配我们的设计。 - 响应式设计部分使用了@media查询来改变小屏幕设备上的导航栏布局,使其在屏幕宽度小于600px时变为垂直排列。
5.2 导航系统的构建
5.2.1 制作响应式导航菜单
一个有效的导航菜单可以帮助用户快速找到他们感兴趣的内容。以下是一个使用HTML和CSS创建的响应式导航菜单的示例代码。
<nav class="navbar">
<div class="logo">Logo</div>
<ul class="nav-links">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</nav>
5.2.2 实现多级导航和交互效果
多级导航菜单可以提供更多的选项,但同时应避免过度复杂。为了实现多级导航,我们可以使用嵌套的HTML列表,并通过CSS来控制显示效果。
.nav-links > ul {
list-style: none;
display: none;
}
.nav-links:hover > ul {
display: block;
}
5.2.3 逻辑分析和参数说明
-
.nav-links > ul
选择器用于选择所有的子级<ul>
元素,并默认隐藏它们。 -
.nav-links:hover > ul
选择器则在鼠标悬停时显示这些子级<ul>
元素,从而实现交互效果。
使用这种技术,我们可以为网站添加具有丰富交互的导航系统,而不牺牲页面的整洁性或加载速度。请注意,对于更复杂的交互或动画效果,可能需要使用JavaScript进行增强,但在此处我们仅展示如何通过CSS实现基本的响应式和多级导航功能。
6. 动态按钮和互动元素
在数字产品设计中,动态按钮和互动元素是提升用户体验的关键所在。通过给予用户反馈,如鼠标悬停或点击时的动画,可以增加交互的趣味性和直观性。在本章节中,我们将深入探讨如何设计动态按钮和互动元素,并通过ActionScript来增强它们的功能。
6.1 设计动态按钮和视觉效果
6.1.1 按钮状态的动画设计
在Flash CC中,动态按钮是通过不同状态下的视觉反馈来实现的,包括正常状态、鼠标悬停、被点击和禁用状态。为了创建一个有吸引力的动态按钮,我们需要为每个状态设计相应的动画效果。
设计步骤
- 准备素材 :首先,需要设计按钮的不同状态下的图形元素,比如按钮的边框、图标和文本。
-
创建按钮实例 :在Flash的舞台上,选择所有按钮状态的图形元素,然后右键选择“转换为按钮”(Convert to Symbol)。
-
编辑按钮 :在弹出的“按钮属性”(Button Properties)窗口中,为每个状态(如弹起、按下、过界和点击)指定对应的帧。使用Flash中的层(Layer)功能可以帮助组织和管理这些不同的状态。
-
添加动画效果 :在每个状态下,通过添加关键帧(Keyframe)和补间(Tween)动画,可以创建出视觉效果,如颜色变化、缩放、旋转等。
6.1.2 利用ActionScript增强按钮功能
虽然Flash的视觉效果能够给用户带来直观的反馈,但通过ActionScript编程,我们可以进一步增强按钮的功能和互动性。ActionScript 3.0是Adobe Flash平台的编程语言,它为Flash内容添加了更丰富的交互性。
ActionScript基础代码
// 建立一个简单的ActionScript类,名为MyButton
import flash.display.Sprite;
class MyButton extends Sprite
{
public function MyButton()
{
// 在这里添加按钮的初始化代码
}
// 鼠标点击时的回调函数
public function onClick():void
{
trace("按钮被点击");
}
}
6.1.3 将ActionScript绑定到按钮
在Flash CC中,创建完按钮实例和ActionScript代码后,需要将ActionScript绑定到按钮上,以便按钮在被点击时执行相应的逻辑。
// 在MyButton类中添加以下代码
import flash.events.MouseEvent;
public function MyButton()
{
// 省略其他代码
this.addEventListener(MouseEvent.CLICK, onClick);
}
6.2 互动元素的制作与应用
6.2.1 创建交互式信息提示
在用户交互设计中,提供清晰的提示信息能够增强用户体验。在Flash CC中,我们可以创建动态的提示信息,如气泡提示(Tooltip)。
实现步骤
-
设计提示信息界面 :创建一个显示提示信息的图形,这可以是一个简单的文本框或是带有背景的复杂气泡图形。
-
创建影片剪辑符号 :将设计好的提示信息转换为影片剪辑符号(Movie Clip Symbol)。
-
编写ActionScript控制显示 :在按钮被鼠标悬停时,使用ActionScript代码来显示和隐藏提示信息。
import flash.display.MovieClip;
import flash.events.MouseEvent;
var myTooltip:MovieClip;
public function MyButton()
{
// 省略其他代码
this.addEventListener(MouseEvent.MOUSE_OVER, showTooltip);
this.addEventListener(MouseEvent.MOUSE_OUT, hideTooltip);
}
function showTooltip(e:MouseEvent):void
{
myTooltip = this.getChildByName("myTooltip") as MovieClip;
myTooltip.visible = true;
}
function hideTooltip(e:MouseEvent):void
{
myTooltip.visible = false;
}
6.2.2 实现元素的动态交互效果
动态元素的交互效果可以增加界面的活力和吸引力。Flash CC提供了丰富的工具来实现这一目标,而ActionScript则允许我们定义这些元素的交互逻辑。
实现逻辑
-
创建互动元素 :首先在舞台上创建一个简单的图形,然后将其转换为影片剪辑符号。
-
设计互动逻辑 :为该互动元素添加ActionScript代码,使其在用户交互时做出响应,如移动、旋转或是改变颜色。
import flash.display.MovieClip;
public class InteractiveElement extends MovieClip
{
public function InteractiveElement()
{
this.addEventListener(MouseEvent.MOUSE_DOWN, onElementDragStart);
this.addEventListener(MouseEvent.MOUSE_UP, onElementDragEnd);
}
function onElementDragStart(e:MouseEvent):void
{
this.startDrag();
}
function onElementDragEnd(e:MouseEvent):void
{
this.stopDrag();
}
}
通过上述步骤,我们可以看到动态按钮和互动元素的实现不仅仅限于视觉上的创意,更需要逻辑上的编程来支撑复杂的交互行为。在Flash CC中,结合矢量图形设计和ActionScript编程,可以创建出功能丰富、美观的动态按钮和互动元素,从而提升用户的交互体验。
7. 音频和视频在动画中的集成
音频和视频的集成,可为Flash动画增色不少,尤其在增强用户体验方面至关重要。本章节将详细解读如何有效地将音频和视频素材集成到动画中,并进行控制与优化。
7.1 音频的使用与控制
7.1.1 导入和编辑音频文件
在Flash CC中导入音频文件相对简单。首先,在项目面板中点击“导入”按钮,选择要导入的音频文件。支持的音频格式包括WAV、MP3和AIFF。导入后,音频文件将显示在时间轴上,可以对其进行剪辑、分割和调整音量等编辑操作。
注意:在编辑前,确定音频格式的兼容性,避免播放时的兼容问题。
7.1.2 音频与动画的同步与控制
同步音频与动画的关键在于帧率与时间轴的控制。音频与关键帧同步,可以使用脚本或帧标签来精确控制。在时间轴上,音频可以拖动到不同的层,实现多轨音效。
// ActionScript 控制音频播放示例代码
var mySound:Sound = new Sound();
mySound.load(new URLRequest("path/to/sound.mp3"));
mySound.play(0, 1);
确保音频与动画关键帧的起始位置匹配,可以使用“编辑封套”调整音频播放时间和音量。
7.2 视频内容的集成与优化
7.2.1 将视频内容融入动画
将视频集成到Flash动画中,主要有以下几种方式:
- 将视频文件作为FLV或F4V格式嵌入到影片剪辑中。
- 使用Video组件播放视频,通过ActionScript控制视频播放。
- 导入视频文件作为序列帧图片,逐帧播放。
视频嵌入步骤为:选择“文件”菜单下的“导入”选项,然后选择视频文件,接着在“属性”面板中选择嵌入或链接选项,并指定编码选项。
7.2.2 视频播放和交互的处理
为了确保视频在不同设备和不同网络环境下也能流畅播放,需要进行优化。优化可以从以下几方面着手:
- 对视频进行压缩,减少文件体积。
- 选择合适的视频编码格式,如H.264。
- 使用ActionScript 3.0编写视频控制脚本,实现播放、暂停、停止等控制。
// ActionScript 控制视频播放示例代码
var video:FLVPlayback = new FLVPlayback();
video.source = "path/to/your-video.flv";
video.width = 550;
video.height = 400;
addChild(video);
此外,还可以根据用户交互行为添加事件监听,如点击暂停按钮触发暂停事件:
btnPause.addEventListener(MouseEvent.CLICK, pauseVideo);
function pauseVideo(event:MouseEvent):void {
video.pause();
}
通过章节的介绍,我们可以发现,在Flash CC中集成音频和视频并不是一件难事。通过合适的工具和代码,可以轻易地将音视频素材融入到动画作品中。本章内容为Flash动画设计提供了音频和视频处理的技巧和方法,是Flash动画制作不可或缺的一部分。在实践中,需要注意音频格式的选择、视频编码的优化以及交互控制的编写,这样最终的动画作品才能达到最佳效果。
简介:本教程资源包旨在帮助用户通过实际操作学习FlashCC软件,掌握创建整站动画的技能。教程内容分为五篇,涵盖了基础入门、骨骼动画、网站布局、音频视频集成、高级组件开发等多个层面。源文件包括最新及CS3版本,以助于学习者了解软件功能及历史演变。通过本教程,学习者将能够独立完成高质量的整站动画项目,提升技术能力及创新思维。