Flash actionscript 3将代码抛出到时间轴和使用单独的.as文件之间的区别

时间:2012-12-07 11:23:53

标签: actionscript-3 flash

我是学生,我的老师一直告诉我习惯于在单独的.as文件中制作我的Flash游戏,而不是使用flash时间线制作我的游戏并在那里添加所需的actionscript 3代码,靠近地方和行动发生的时间。

他坚持认为这是因为一些问题,但是我真的没有完全理解他的意思,所以有人可以快速解释如果我构建更大的结构游戏而没有单独的.as文件而不是使用flash时间线可能会出现的问题并分离我的代码?

我感到头脑中有顽固的阻力,因为到目前为止我没有太多问题分离我的代码,即使他说当代码在同一个地方时我自己更容易解决问题,但我有倾向抽象/非理性思考,所以我至少到目前为止都没有看到它的问题,对我来说似乎更难将所有的动作3添加到同一个地方......或者我可能只是顽固的傻瓜我应该听他的......那么,有人可以解释一下吗?

提前谢谢你!

3 个答案:

答案 0 :(得分:3)

结构。您会注意到,随着您对AS3的熟悉程度越来越高,根据最佳实践构建代码可以获得很多好处。它不仅可以为您提供更多控制,更容易读取代码,还可以更轻松地构建有用的,可重用的面向对象的代码。

即使你可能擅长非理性思维,但你的记忆可能不是。当一位同事将来最终触及你的代码时,你和你的同事都会迷失。

答案 1 :(得分:3)

我几乎和walkietokyo有相同的答案:代码组织和结构。一个例子可以说你正在制作像小行星这样的游戏。将你的代码分开来表示:玩家移动,射击,子弹和小行星命中检测,小行星移动以及分数处理可能很有用。然后,当您(或其他人)将来重新访问它时,您的代码将更小,更容易消化,每个部分都集中在特定的事物上。可能甚至可以重复使用可能有类似行为的其他东西。

通过分离你的代码,它也可以使测试和调试更容易,因为如果说玩家射击有一个错误,你不需要担心所有其他部分的代码相比之下,如果它是一个巨大的fla /文件。它也可以简单地让它更容易导航,而不是必须从一个长的东西中找到它。

但是我还要补充一些小问题,如果你在同一个项目中与多个人一起工作,将它分开也可以让人们一次处理/处理不同的部分,如果你正在使用版本控制系统来处理你的文件,比较'纯文本'AS文件比比较闪光灯容易得多。您甚至可以将fla视为“资源/资产”文件并具有不同的版本。

答案 2 :(得分:3)

结构:

就像walkietokyo所说的那样,将代码分成对象可以让您在以后再次使用代码变得非常容易。想在游戏中将4种武器添加到4级吗?简单。 new GrenadeLauncher();。最后,您将拥有一个可在所有项目中使用的组件库,从而为您节省大量时间。

文件大小/内存:

如果您的整个应用程序都在FLA中,则用户必须先下载整个 FLA(假设内容在网页上可用),然后才能使用它。对于小型程序,这不是什么大问题。对于具有许多不同屏幕的大型程序,或者对于具有级别的游戏,这可能是一个问题,因为一切都留在内存中。您只需将内存保留在内存中即可节省下载时间和内存使用量。

在团队中工作:

假设您正在制作一款游戏,而您正在编写6级编码。同时,您的艺术家正在为图书馆添加一些艺术作品并在舞台上进行一些调整。您将更改提交到版本控制系统,并且存在冲突。你的艺术家已经承诺了她的改变,现在你必须复制她在你的版本中所做的一切,浪费她和你的时间。如果您在level6.as编码级别6,则不会发生这种情况。就个人而言,我发现这是编写文本文件并将FLA留给UI和艺术的最佳理由。

记忆,如​​大象:

两个月后,你打算打开文件,想找到你写的那个漂亮的榴弹发射器,但你不知道从哪里开始。如果您使用包在文件中以结构化方式进行编码,则无需记住。只需查看您的文件夹,最终您就会找到mygame.weapons.GrenadeLauncher.as