我正在使用Animate CC(erstwhile Flash CC)来制作一些我以HTML5格式导出的广告(<canvas>
和CreateJS东西)。他们的整体工作非常好。Flash/Animate CC Tween格式编号
我有一个格式化的数字,在静态文本框,就像这样:5,000,000
,我想它补间,比方说,20,000
,超过30帧的过程。我希望在整个场景过程中将相同的文本填入5,000
和1,000,000
等等。
在我有限的Animate CC体验中,我设法避免使用任何Javascript,但我想我现在需要。所以,我的问题:我该怎么做?
我就这样做的方法的想法:
由于我使用CreateJS,它具有TweenJS库作为它的一部分,也许我可以只使用了渐变?在我的时间表的不同点上做出小动作?不知道所有这些工作如何,以及大量的在线参考是针对ActionScript 3甚至AS2的。示例代码将不胜感激。
如果我进入Javascript,那么我会怎么做数字格式的问题。我可以调整数字为5000000 -> 20000
,并在每个帧更新插入逗号,这是一种方法。但是,为了使事情更加复杂,这些广告将被翻译,并且不同的区域设置会被混合使用。所以用英文你会得到5,000,000
,用德文你会有5.000.000
,当然。
由于我们在浏览器中的JavaScript说话,我知道这不下面的方法Number.prototype.toLocaleString()
的:
的的toLocaleString()方法返回一个字符串,这个数字的语言敏感 表示。
这似乎是它会做的伎俩,但后来我不得不担心浏览器兼容性和如果我不指定区域设置会发生什么。理想情况下,由于德国广告只会显示给在浏览器/操作系统上拥有德语区域设置的用户,因此我可以在不指定任何语言环境的情况下调用该方法,并将其从用户的计算机上读取。我想有可能有一个德国人看到英文广告的情景,但我不是,担心它。
但是,在MDN page对于toLocaleString()
它有关于FF的早期版本默认为西方阿拉伯数字的巨大警告,所以它让我怀疑完全使用该方法。
最后,我有一个有趣的事实是,译者几乎肯定会采取5,000,000
并将其转换成5.000.000
德国。所以有可能避免使用toLocaleString()
,因为我已经有了本地化的文本。所以如果可以写一个简单的Javascript函数来调用任意格式化的数字,我认为这样做会有效。也许:
- 以起始编号和RIP格式化了它,将它保存
- 吐温数
- 在每一帧更新,注入格式回到它
可能不是很难从JS的角度来看,但我被困的地方是我该如何在Animate/Flash和/或CreateJS/TweenJS中做到这一点?
谢谢,这有些帮助。你真的使用'obj.val'属性吗?对于文本字段,它不是'obj.text'吗?我认为''change'事件会在对象的属性被补间更新后触发,但在渲染帧之前? –
正确,顺序如您所述。 'obj.val'只是一个例子。您可以补间任何数字属性。这不是实际的文本,所以我可能会使用其他的东西(比如分数,或者任何属性名称)。 – Lanny