我知道ActionScript 3.0的设计初衷是一种基于面向对象的语言,使用它意味着Flash文档中的时间线代码更少甚至没有。
我对OOP很有经验,我很乐意写课。但是,由于我主要使用Flash进行动画制作,因此除了预加载器,字幕,质量控制,网站链接等以外,我几乎不需要 来编写ActionScript代码。事实上,我仍然将我的Flash电影设置为使用AS2,因为我已经习惯了gotoAndPlay()
/ gotoAndStop()
,AS2预加载器,字幕,质量控制甚至是getURL()
。当然,我现在真的想继续前进,几乎每个人都使用Flash Player 9或10,现在我已经涉足其他OO语言,如Java,C#和Objective-C。
我是AS3的全新人,我也不是很了解AS2。考虑到我目前使用ActionScript,在任何情况下都可以在时间轴中使用非常简单的AS3代码而不是将代码移动到类中,特别是因为移动到类可能意味着不必要地将LOC的数量从4增加到40 ? (哎呀,后一种情况('而不是......')甚至是一个有效的问题?)
答案 0 :(得分:4)
如果您已经熟悉AS2(并且您也有使用其他语言的经验),切换到AS3应该不会太难。有一些地方的事情发生了很大变化:基本上是事件模型和一些广泛使用的API,如flash.net(即加载东西,无论是图像,SWF,声音,XML等)和显示列表(很多)更多选项,而不仅仅是movieclip,更连贯,重新定位等)。使用XML也改变了(好),它更强大,更容易(但如果您愿意,可以使用旧的API,它仍然存在)。不过,大部分语言本身并没有太大变化。
我确信你知道在时间轴中有代码的潜在问题。嗯,这同样适用于AS3,尽管在AS3中不允许在代码上放置代码。
我没有看到在IDE中将内容放入舞台并使用动画片段制作动画时出现问题。 IMO,这就是他们首先出现在那里的原因。我知道有些人痴迷于通过代码创建和定位所有内容。我不是其中之一。对我来说,IDE可以是布局,补间等的好工具,至少在大多数情况下(对于一些非常动态的东西,另一方面,你也需要对布局进行编码)。
所以,我不会直接建议不要适度使用时间轴代码。如果它符合您的需求,适合您的工作流程并让您做您需要做的事情,而不是无法维持(甚至跟随)混乱,为什么不呢?
如果在某些时候你需要在课堂上放一些东西,你可以随时重构和移动你的代码。
答案 1 :(得分:2)
从您提供的有关如何使用Flash的示例中,没有任何内容真正发生变化,使其变得更加困难。您没有理由为上述所有内容使用外部代码。你可以像以前一样工作(gotoAndPlay
,gotoAndStop
仍然存在并且工作正常。我想到的唯一比以往更乏味的事情就是不再有getURL()
这个事实。但是,Senocular重新制作了getURL类,您可以找到它here。
我想说,只有当你的项目特别严重,然后将大部分(如果不是全部)移动到类中并以OOP方式正确地构建它。哎呀,你甚至可以将你的舞台的引用传递给基类,并且只是以这种方式操作。
在.fla时间轴中:
import com.yourdomain.Main;
var main:Main = new Main(this);
在您的外部主类中:
package com.yourdomain
{
public class Main
{
private var mainTimeline:Object;
public function Main(_mainTimeline:Object):void
{
mainTimeline = _mainTimeline;
mainTimeline.gotoAndPlay("fScream");
}
}
}