重要提示:Flash 技术已过时
必须强调一个非常重要的信息:Adobe Flash Player 已于 2025 年 12 月 31 日正式停止支持并被主流浏览器(如 Chrome, Firefox, Edge, Safari)禁用。

(图片来源网络,侵删)
这意味着,任何使用旧版 Adobe Flash Professional (Animate) 制作的传统 SWF 文件,在今天的网页上已经无法播放。
这个教程的目的主要是:
- 学习 Flash 的核心动画原理:Flash 的时间轴、补间动画、ActionScript 逻辑思想,是现代前端动画(如 CSS3, JavaScript)的基石。
- 怀旧与回顾:如果您是设计师或开发者,了解 Flash 有助于理解 Web 动画的发展史。
- 在特定环境下运行:您需要一个已安装 Flash Player 的旧版浏览器(如 Firefox 的 ESR 版本并手动启用 Flash)或在 Adobe Animate 软件内部进行测试。
教程目标
我们将制作一个经典的、带有淡入淡出效果的图片轮播组件,当鼠标悬停在轮播图上时,图片会自动切换;鼠标移开时,切换暂停。
准备工作
- 软件:安装 Adobe Animate (这是 Adobe Flash Professional 的继任者,但制作传统 Flash 动画的逻辑基本一致),您也可以使用旧版的 Adobe Flash Professional CS6 或更早版本。
- 素材:准备几张(4 张)尺寸相同、格式为 JPG 或 PNG 的图片,为了方便,建议尺寸为 800x400 像素。
- 新建文档:
- 打开 Adobe Animate。
- 选择 "ActionScript 3.0" 文档。
- 在属性面板中,设置舞台大小与您的图片尺寸一致(800x400 像素),背景色设为灰色(便于区分)。
- 将文档保存为
carousel.fla。
第一步:创建轮播元件
-
创建新图形元件:
(图片来源网络,侵删)- 按
Ctrl + F8(或Cmd + F8),打开“创建新元件”对话框。 - 名称输入
CarouselItem,类型选择“图形”。 - 点击“确定”。
- 按
-
放置图片:
- 进入
CarouselItem元件的编辑界面。 - 将您的第一张图片直接从文件夹拖到舞台中央,它会自动被转换为位图并居中。
- 进入
-
复制并修改:
- 回到主场景(双击舞台左上角的“场景 1”)。
- 在“库”面板(
Ctrl + L)中,右键点击CarouselItem,选择“直接复制”。 - 名称改为
CarouselItem2,类型保持“图形”。 - 双击进入
CarouselItem2的编辑界面,在库中选中第二张图片,替换掉舞台上的第一张图片。 - 重复此操作,为所有图片创建对应的图形元件(
CarouselItem3,CarouselItem4...)。
您的库中应该有一系列代表单张图片的图形元件。
第二步:在舞台上布置图片
-
拖入元件:
(图片来源网络,侵删)- 回到主场景(时间轴第1帧)。
- 从库中,将
CarouselItem(第一张图)拖到舞台的 (0, 0) 位置(左上角)。
-
创建影片剪辑:
- 选中舞台上的
CarouselItem实例。 - 按
F8,将其转换为“影片剪辑”,名称设为CarouselMC。 - 关键:在“注册点”选项中,点击中心点的十字,将注册点设置为舞台中心。
- 选中舞台上的
-
编辑影片剪辑:
- 双击舞台上的
CarouselMC实例,进入它的编辑时间轴。
- 双击舞台上的
-
布置所有图片:
- 在
CarouselMC的时间轴上,锁定图层1,然后新建图层,命名为item2。 - 从库中将
CarouselItem2拖到item2图层的舞台中央。 - 重复此过程,为所有图片创建新图层(
item3,item4...),并将对应的图片元件拖入各自的图层,确保所有图片都精确地重叠在舞台中央。 CarouselMC的时间轴上应该有多个图层,每个图层上都有一张完全重叠的图片。
- 在
**第三步:制作淡入淡出动画
这是轮播效果的核心,我们将让图片一张一张地淡入淡出。
-
设置关键帧:
- 选中
item1图层,在第 1 帧上,图片是可见的,在第 25 帧上,按F6插入一个关键帧。 - 选中
item2图层,在第 25 帧上,按F6插入一个关键帧,在第 50 帧上,再按F6插入一个关键帧。 - 选中
item3图层,在第 50 帧上,按F6插入一个关键帧,在第 75 帧上,再按F6插入一个关键帧。 - 选中
item4图层,在第 75 帧上,按F6插入一个关键帧,在第 100 帧上,再按F6插入一个关键帧。 - 技巧:为了让循环更平滑,可以在第 100 帧之后,再在第 125 帧为
item1图层插入一个关键帧,并设置其与第 1 帧相同的透明度。
- 选中
-
创建补间动画:
- 淡出:选中
item1图层的第 1 帧到第 24 帧之间的任意一帧,在属性面板中,找到“补间”下拉菜单,选择“动画”。 - 在第 25 帧上,选中舞台上的图片,在属性面板的“颜色效果” -> “样式”中选择“Alpha”,并将值设为 0%,这样,图片就会从 100% 淡出到 0%。
- 淡入:选中
item2图层的第 25 帧,在属性面板中创建“动画”补间,在第 25 帧上,选中该图层的图片,将其 Alpha 值设为 0%。 - 选中
item2图层的第 50 帧,将图片的 Alpha 值设为 100%,Flash 会自动在第 25 帧到第 50 帧之间创建从 0% 到 100% 的淡入效果。 - 重复此过程:
item3:第 50 帧 Alpha=0%,第 75 帧 Alpha=100%。item4:第 75 帧 Alpha=0%,第 100 帧 Alpha=100%。item1(循环):第 100 帧 Alpha=0%,第 125 帧 Alpha=100%。
- 淡出:选中
-
延长帧:
- 在所有图层的第 125 帧按
F5,将帧延长至此,确保所有动画都能完整播放。
- 在所有图层的第 125 帧按
按 Ctrl + Enter 测试一下,您应该能看到图片在循环播放了。
**第四步:添加 ActionScript 交互控制
我们要用代码来控制播放和暂停。
-
添加图层:
- 在
CarouselMC的时间轴最上方,新建一个图层,命名为Actions。
- 在
-
编写代码:
- 选中
Actions图层的第 1 帧,按F9打开“动作”面板。 - 输入以下 ActionScript 3.0 代码:
// 停止在第一帧,等待用户交互 stop(); // 创建一个事件监听器,监听鼠标滑入事件 this.addEventListener(MouseEvent.ROLL_OVER, playCarousel); // 创建一个事件监听器,监听鼠标滑出事件 this.addEventListener(MouseEvent.ROLL_OUT, pauseCarousel); // 当鼠标滑入时,播放动画 function playCarousel(event:MouseEvent):void { trace("鼠标进入,开始播放"); this.play(); } // 当鼠标滑出时,停止动画 function pauseCarousel(event:MouseEvent):void { trace("鼠标离开,暂停播放"); this.stop(); }- 代码解释:
stop();:让影片剪辑一开始就停在第一帧,而不是自动播放。addEventListener:为整个CarouselMC实例添加事件监听器。ROLL_OVER:鼠标滑入组件区域时触发。ROLL_OUT:鼠标滑出组件区域时触发。play()和stop():控制时间轴的播放和暂停。
- 选中
第五步:测试与导出
-
测试:
- 按
Ctrl + Enter(或Cmd + Enter) 测试影片。 - 您会看到一个 SWF 文件弹出。请注意,由于浏览器安全策略,这个 SWF 文件可能无法直接在文件系统中运行(需要通过 Web 服务器)。
- 在 Animate 的测试环境中,您可以模拟鼠标悬停效果,看到轮播图是否正常工作,将鼠标放在轮播图上,它应该开始播放;移开鼠标,它应该暂停。
- 按
-
导出:
- 在 Animate 中,选择
文件->发布设置。 - 确保“Flash”和“HTML”都已勾选。
- 点击“发布”,Animate 会生成一个
carousel.swf文件和一个carousel.html文件。 - 您需要将这两个文件上传到一个 Web 服务器上,才能在浏览器中查看效果,或者,使用本地服务器软件(如 XAMPP, MAMP)来本地测试。
- 在 Animate 中,选择
现代替代方案
既然 Flash 已经过时,如果您需要制作网页轮播图,强烈推荐以下现代技术:
- 纯 CSS 轮播:使用 CSS 的
opacity和transition属性,配合hover伪类,可以实现非常简单的轮播效果,无需任何 JavaScript。 - JavaScript 轮播库:这是最主流、最灵活的方式。
- Swiper.js:功能强大、性能优秀、文档齐全,是首选。
- Slick Carousel:另一个非常流行且易于使用的轮播库。
- Bootstrap Carousel:如果您在使用 Bootstrap 框架,它内置了轮播组件。
这些现代方案的优势在于:兼容所有浏览器、对移动设备友好、加载速度快、易于维护和优化,并且符合现代 Web 标准。
希望这个教程能帮助您理解 Flash 轮播的制作原理!
