使用FLASH AS2.0,制作一个类似手机上下滑动一样的效果,需要带有一定的缓冲效果。网上找的基本都是用AS3.0写的。步骤希望越详细越好。万分感谢。
注:目前也有一些好心的网友,已经给了部分答案,但是按照方法制作时,基本都没成功,比如:让使用组件,但在FLASH CS6中,完全找不到相关的组件,还说右键“转为符号”,也完全找不到“转为符号”,有点尴尬。
FLASH AS2.0制作一个类似手机上下滑动一样的效果,同时带有一定的缓冲效果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
13条回答 默认 最新
- JoseKe 2023-03-26 12:46关注
首先,我们需要明确一下实现这个效果的基本原理。在手机上下滑动的过程中,实际上是通过手指在屏幕上的滑动来控制页面的滚动。因此,我们需要在FLASH中模拟手指在屏幕上的滑动,来实现页面的滚动效果。
具体实现步骤如下:- 创建一个容器,用来放置需要滚动的内容。可以是文本、图片等。
- 给容器添加一个滚动条,用来控制容器的滚动。可以使用FLASH自带的滚动条组件,也可以自己设计一个滚动条。
- 监听滚动条的滑动事件,获取滑动条的位置。
- 根据滑动条的位置,计算容器需要滚动的距离。
- 使用Tween类或者自己写的缓动函数,实现容器的滚动效果。
- 在容器的顶部和底部添加边界,防止容器滚动出界。
- 如果需要实现惯性滚动效果,可以在滑动结束后,根据手指滑动的速度,使用Tween类或者自己写的缓动函数,实现惯性滚动效果。
需要注意的是,AS2.0相对于AS3.0来说,缺少了一些新的语法和类库,因此在实现这个效果的过程中,可能需要自己写一些代码来实现一些功能。同时,AS2.0的性能也相对较低,因此在实现滚动效果的时候,需要注意优化代码,减少不必要的计算和渲染。
在文章向下翻阅或网页图片向下滑动的场合,用户可以通过鼠标或手指的滑动操作,实现页面的上下滑动。因此,我们需要实现以下功能:
1. 监听鼠标或手指的滑动操作;
2. 根据滑动的方向和距离,移动页面的位置;
3. 控制页面的滑动范围,避免超出页面边界。
下面是具体的实现步骤和代码:
1. 创建一个新的Flash文档,并在舞台上添加一个MovieClip,用于容纳页面内容。给该MovieClip命名为“content”。
2. 在第一帧的ActionScript面板中,添加以下代码,用于初始化页面位置和滑动范围:
// 初始化页面位置
content._y = 0;
// 定义页面滑动范围
var minY:Number = Stage.height - content._height;
var maxY:Number = 0;
3. 监听鼠标或手指的滑动操作。我们可以使用onMouseDown、onMouseMove和onMouseUp事件来实现这个功能。具体代码如下:
// 定义滑动相关变量
var isDragging:Boolean = false;
var startY:Number = 0;
var offsetY:Number = 0;
// 监听鼠标或手指的按下事件
content.onMouseDown = function() {
isDragging = true;
startY = _ymouse;
offsetY = content._y;
};
// 监听鼠标或手指的移动事件
content.onMouseMove = function() {
if (isDragging) {
var deltaY:Number = _ymouse - startY;
var newY:Number = offsetY + deltaY;
// 控制页面滑动范围
if (newY < minY) {
newY = minY;
} else if (newY > maxY) {
newY = maxY;
}
// 移动页面位置
content._y = newY;
}
};
// 监听鼠标或手指的松开事件
content.onMouseUp = function() {
isDragging = false;
};
4. 最后,我们需要在舞台上添加一些测试内容,以便验证页面滑动效果。具体代码如下:
// 添加测试内容
for (var i:Number = 0; i < 10; i++) {
var txt:TextField = content.createTextField("txt" + i, content.getNextHighestDepth(), 0, i * 50, 200, 40);
txt.text = "测试内容" + i;
}
至此,一个类似手机上下滑动一样的效果就完成了。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改