许你一世温柔 2023-03-24 23:52 采纳率: 100%
浏览 151
已结题

FLASH AS2.0制作一个类似手机上下滑动一样的效果,同时带有一定的缓冲效果

使用FLASH AS2.0,制作一个类似手机上下滑动一样的效果,需要带有一定的缓冲效果。网上找的基本都是用AS3.0写的。步骤希望越详细越好。万分感谢。
注:目前也有一些好心的网友,已经给了部分答案,但是按照方法制作时,基本都没成功,比如:让使用组件,但在FLASH CS6中,完全找不到相关的组件,还说右键“转为符号”,也完全找不到“转为符号”,有点尴尬。

  • 写回答

13条回答 默认 最新

  • JoseKe 2023-03-26 12:46
    关注

    首先,我们需要明确一下实现这个效果的基本原理。在手机上下滑动的过程中,实际上是通过手指在屏幕上的滑动来控制页面的滚动。因此,我们需要在FLASH中模拟手指在屏幕上的滑动,来实现页面的滚动效果。
    具体实现步骤如下:

    1. 创建一个容器,用来放置需要滚动的内容。可以是文本、图片等。
    2. 给容器添加一个滚动条,用来控制容器的滚动。可以使用FLASH自带的滚动条组件,也可以自己设计一个滚动条。
    3. 监听滚动条的滑动事件,获取滑动条的位置。
    4. 根据滑动条的位置,计算容器需要滚动的距离。
    5. 使用Tween类或者自己写的缓动函数,实现容器的滚动效果。
    6. 在容器的顶部和底部添加边界,防止容器滚动出界。
    7. 如果需要实现惯性滚动效果,可以在滑动结束后,根据手指滑动的速度,使用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;
    }

    至此,一个类似手机上下滑动一样的效果就完成了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 4月8日
  • 已采纳回答 3月31日
  • 修改了问题 3月28日
  • 修改了问题 3月28日
  • 展开全部

悬赏问题

  • ¥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 悬赏!微信开发者工具报错,求帮改