在TweenMax和AS3“覆盖管理器”中创建计数器

时间:2010-02-11 18:30:38

标签: flash actionscript-3 tweenlite

如何使用Greensocks TweenMax或TweenLite制作计数器?有没有人理解覆盖管理器?

我的代码将在AS3中。我希望它是基于计时器的,并且能够 或重置它的自我和循环。建议或入门代码会很酷。另外,使用补间引擎是不是很糟糕?请告诉我。

IDEAS
移动数字列“按像素递增”
0
1
2
3
4
5
6
7
8
9
0

//1
TweenMax.to
(num7, 1, {y:-3911, delay:1, paused:false, useFrames : false, immediateRender : false});
//2
TweenMax.to
(num7, 1, {y:85, delay:2, paused:false, useFrames : false, immediateRender : false});
//3
TweenMax.to
(num7, 1, {y:-3911, delay:3, paused:false, useFrames : false, immediateRender : false});
//4
TweenMax.to
(num7, 1, {y:85, delay:4, paused:false, useFrames : false, immediateRender : false});
//5
TweenMax.to
(num7, 1, {y:-3911, delay:5, paused:false, useFrames : false, immediateRender : false});
//6
TweenMax.to
(num7, 1, {y:85, delay:6, paused:false, useFrames : false, immediateRender : false});
//7
TweenMax.to
(num7, 1, {y:-3911, delay:7, paused:false, useFrames : false, immediateRender : false});
//8
TweenMax.to
(num7, 1, {y:85, delay:8, paused:false, useFrames : false, immediateRender : false});
//9
TweenMax.to
(num7, 1, {y:-3911, delay:9, paused:false, useFrames : false, immediateRender : false});
//10

外观“事物出现和消失,类似于加载精灵方法”
“没有例子”

我的问题
- 无限循环运动
- 全球时间缩放和数学楼层 - 垃圾堆积

1 个答案:

答案 0 :(得分:0)

听起来你有过于复杂化的习惯。我可能不会使用补间引擎,但可能会使用Timer类。

我还会把事情分成可管理的块。目前看起来你有你的计时代码,你显示所有混合在一起的代码。我会创建这些单独的部分:

  1. CounterTimer - 可以解决计数您最多(基于时间)的问题。
  2. CounterView - 计数器的可视化图形。唯一的工作就是渲染显示 TOLD 的数字。并处理各州之间的过渡。
  3. CounterController - 一个中间人的排序。从CounterTimer获取当前Count,并告诉CounterView呈现该数字(基于帧,因为每帧只能渲染一次)。
  4. 这样断开意味着您可以一次专注于一个组件,并将其中一个部件与其他部件隔离开来进行测试。例如;首先你可以构建CounterView。这可能是一个将你的图形保存在舞台上的MovieClip。它可能有一个名为:

    的方法
    public function displayNumber(numberToDisplay:Number):void
    

    调用此方法时,CounterView将显示该数字的图形,包括过渡。要测试此组件,只需使用随机数从CounterView父级调用此方法。一旦它工作,你可以开始使用CounterTimer。

    对于CounterTimer,您可能希望它有更多的API,例如

    public function CounterTimer( startCount:Number ) //This is the constructor.
    public function start()
    public function reset():void
    public function getCount():Number
    

    当CounterTimer完成后,只需启动CounterController将它们连接在一起。 CounterController需要监听enterframe事件,并告诉CounterView每帧显示CounterTimer的计数。