【发布时间】:2012-05-15 02:01:36
【问题描述】:
我正在尝试使用 Flex(在浏览器中运行)创建一个非常简单的图像动画,该动画在屏幕上连续 300 像素水平移动。我发现动画非常不稳定。每次我运行动画,结果都不一样。有时动画会在出现断断续续之前播放几秒钟,有时会立即出现。这已在 Internet Explorer 和 Firefox 中的多台 Windows 7 机器上进行了测试。
我尝试了几种不同的方法,但似乎都无法阻止这种波动/抖动。
方法一:使用 s:move
<fx:Declarations>
<s:Power id="_powerEasing" exponent="1" />
<s:Move id="_moveRight" target="{_sword}" xFrom="{_swordMin}" xTo="{_swordMax}"
duration="1000"
easer="{powerEasing}" />
</fx:Declarations>
<s:BitmapImage id="_sword" visible="true" scaleX=".99" scaleY=".99"
source="@Embed('/assets/images/combat2/attackbar/sword.png')" x="0" y="0" />
使用 _moveRight.play() 调用;
我尝试的第二种方法是在每个输入帧上移动图像对象。图像的新 x 位置是通过将时间差乘以速度来计算的。看起来像这样:
var now:Number = getTimer();
var toMove:Number = ((now - _lastTime) / 1000) * _speed;
_sword.x += toMove;
_lastTime = now;
尝试的第三种也是最后一种方法是在 Flash 中将其创建为影片剪辑。这也很波涛汹涌。
最好的结果是接近 1。
我已经尝试过使用 s:BitmapImage、mx:Image 以及使用 FlexSprite,但我开始认为我必须缺少一些东西才能使这一切顺利进行。
我遗漏的任何想法或最佳实践可以帮助这个动画吗?
编辑:感谢所有建议,但没有任何效果。
这是一个简单的例子。我已启用查看源代码,因此您可以查看实现。 http://legionofderp.com/sword-demo/SwordTestDemo.swf
一开始可能会平稳运行几秒钟,但随后动画开始运行非常不稳定
编辑 2: 这是另一个示例,这个示例是使用 Flash 创建的。 http://legionofderp.com/testing-sword-03.swf
回答感谢大家的所有建议。通过将 html 模板中的 wmode 参数设置为 direct,我能够使动画顺利运行。
【问题讨论】:
-
我很想看看这个运行...听起来好像还有其他事情发生;没有理由简单的移动过渡在桌面上不会流畅。我可能会建议查看补间库的 GreenSock。 (我在这里做了一个演示:flextras.com/blog/index.cfm/2011/11/15/…)如果您正在构建游戏,您可能想要研究 Blitting 概念。
-
sword.png 的大小(以 kb 为单位)是多少?
-
感谢 cmets,我今天要探索 blitting 和不同的补间库。
-
看看这个问题,看看是不是同一个问题stackoverflow.com/questions/9676065/…
-
感谢您的帖子。恐怕没有帮助。
标签: actionscript-3 apache-flex