flash 与动画:轮盘旋转

    这段时间都很懒惰,并不知道该去写一些什么才能更好突破,总是发觉不是缺这样就是那样,除了看书做一些事情不能让自己停止下来。这段时间总觉得自己很颓废,暂时记录一下最近看到一个轮盘旋转的做法,感觉还是挺好的。

 

先写下第一篇,后面慢慢改进。希望想到更好的主题可以进行写一下。

 

          首先来讲轮盘旋转,很多想第一时间会想到抽奖,其实这个正是抽奖的其中一个常见案例。我们不管他是如何实现,把核心的说一下大概会让人明白当中的核心东西。

 

         要旋转会想到速度,想到rotation 这些属性,而这些属性正是我们所需要的。因此在制作的时候,我们让rotation 不断加上一个变量让其产生旋转运动,这样就可以实现到一个轮盘旋转的效果。

 

 

 基本步骤:

        首先建立初速度var speed:Number=10;

        我们演示的时候会通过一个图形,如shape类型,进行绘制一个指针,这样利用这个图形来进行旋转操作;

 

       如:shape.rotation+=speed;//让轮盘旋转,可以看到它的旋转

       如果想让指针缓慢停止可以让速度每一帧进行递减:speed-=0.2;这样的话 轮盘旋转的时候就会慢慢递减下来。

       当条件触发:  if(speed<=0)  我们停止运动;

        

      注意到:trace(shape.rotation)有可能是正也有可能是负值。并不是我们想象那样是从0-360度那样。

 

     

 

 

 

//建立一个箭头类:

 

 

//建立一个圆盘

 

 

//建立一个简单按钮:

 

 

 

初步的开始:

 

 

 

 

当你构建完毕之后,其实这个只是一个很少很少的过程。因为这个简单旋转并不能满足我们的需求。更多的还是会留在后面。

 

为了改进这个。还是需要增加指定旋转圈数,可以随意定制命中局域,可以指定初始速度。

 

这些都是比较有趣,而且有意思的。

 

 

第二步进行改造:

 

   下面进行一个测试。在期间设置 圈数,目标角度,初始角度,等几个参数。当中一个算等差项参考了一个flash 作者的计算方法。采用的办法是等差的公式。 前n项的和Sn=(首项+末项)×项数÷2 (sn=(a1+an)*n/2;) 
                           公差 d=(an-a1)÷(n-1)

 

可以知道的事情是,指针在旋转的总的角度 是等于递减的时候的速度变化总和。

 

 

设置参数:

 

 

 

拥有这个计算办法后可以解决一些问题。

 

 

 

 

 

 

 加上一个背景去,然后恰当修改一部分内容。这样一个简单轮盘旋转就可以实现了。

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
轮盘的HTML实现可以通过CSS的transform属性来实现。根据提供的引用内容,可以将旋转轮盘分为显示分钟的轮和显示秒的轮。显示分钟的轮的旋转半径为768px,并将轮盘向左移动1024px,每3600秒旋转一周。显示秒的轮的旋转半径为1024px,并将轮盘向右移动1024px,每60秒旋转一周。 具体的实现步骤如下: 1. 创建一个HTML元素,例如div,用于表示轮盘。 2. 通过设置id属性来将该元素与CSS样式关联。 3. 在CSS样式中,使用transform属性来实现旋转功能。对于显示分钟的轮,使用rotate()函数来设置旋转角度,该角度由3600秒决定。对于显示秒的轮,同样使用rotate()函数来设置旋转角度,该角度由60秒决定。 4. 设置旋转基点(圆心)的位置,通过设置元素的左偏移或右偏移来实现。根据提供的引用内容,显示分钟的轮需要向左移动1024px,显示秒的轮需要向右移动1024px。 以下是一个简单的HTML实现示例: ```html <div id="wheelOfMinutes"></div> <div id="wheelOfSeconds"></div> ``` ```css #wheelOfMinutes { width: 768px; height: 768px; position: absolute; left: -1024px; transform-origin: center center; animation: rotateMinutes 3600s infinite linear; } @keyframes rotateMinutes { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } #wheelOfSeconds { width: 1024px; height: 1024px; position: absolute; right: -1024px; transform-origin: center center; animation: rotateSeconds 60s infinite linear; } @keyframes rotateSeconds { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } ``` 完成以上步骤后,旋转轮盘就可以在网页中显示了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值