例如,如果您有某种活动状态和被动状态,则可以使用gotoAndStop(2)
,gotoAndStop(1);
在两者之间跳转,或者您可以操纵任何直接更改的属性(例如,如果是alpha,然后symb.alpha=0.5, symb.alpha = 1.0
)。
我发现自己在两者之间跳跃,我不喜欢它(我喜欢有标准,或者至少是平常)。什么被认为是一种好的做法,为什么?
答案 0 :(得分:1)
我更喜欢在代码中总是这样做,除非我不能。代码中的任何动画或其他更改几乎总是比在时间轴上执行相同的动画更容易调整(特别是当您使用像TweenLite这样的东西时)。当然,UI可以通过动态数据来驱动(例如,翻转效果对于数据库中的每个用户都是唯一的。)
“不能”的情况是复杂的图像变化,就像当鼠标悬停在脸上时会改变表情的脸。
但这取决于您工作室的工作流程;有时设计师坚持使用他们的图形资产,而不是将它们视为在代码中重新创建的模型,在这种情况下,我通常不会讨论争论。
答案 1 :(得分:1)
如果您正在使用AS2使用框架并且gotoandstop
没问题,那么在AS3中您确实需要评估这是否适合您。对我来说,最常见的是缺点超过专业人士,因此我谨慎使用框架。
as2和as3之间的最大区别在于as2资源可以立即访问。在AS3中,无法立即访问资源。
例如,如果你在第3帧上有一个名为_mc1的动画片段,你可以在as2中
mymc.gotoandstop(3);
mymc._mc1.visible = false;
在AS3中无法正常工作,您会收到错误,并且需要添加一个onrender侦听器并在那里添加代码。 这样做是一场噩梦。
这并不是说我不使用框架,例如,当我使用movieclips作为按钮时,我没有任何我需要访问的资源,所以我不担心使用框架。 / p>
您应该记住的另一件事是正在使用的内存。如果您的对象具有侦听器或者具有昂贵的创建和删除功能,那么在时间轴上使用这些对象可以使用更多的内存和处理,而不是使用纯代码执行此操作。
答案 2 :(得分:0)
我个人总是喜欢纯粹使用代码来做事情,因为我觉得它可以让你获得更多控制权,而且因为代码比时间线工作更自我记录。我还发现代码更容易移植。
答案 3 :(得分:0)
我几乎总是使用gotoandstop
做事的方式。对我来说,我总是试图保持我的代码长度,这让我这样做。
例如,如果我想要对翻转所需的动画做很多事情,则可能需要5-10行代码,具体取决于复杂程度。如果我能够在时间轴上做到这一点,我发现我的代码更加清晰。
我不确定是否有最好的做法,这可能更多是个人偏好,但我绝对会坚持在整个项目中单向做。