0

我刚刚进入面向对象编程,我想知道,是否可以在时间轴上放置一些代码,例如 stop(); 和用于移动帧的鼠标点击事件,或者所有这些也应该在单独的文件中?如果它们确实属于其他文件,我将如何去做?

4

2 回答 2

3

MPO是你应该学习的工具作为工具。我认为时间线是 Flash 最好的部分,如果你把它扔掉,你就会无缘无故地让你的生活变得更艰难。我认为所有工具都有“代码方式”和“其他”方式来完成他们所做的事情,大多数开发人员的默认设置是假设代码方式展示了您的技能,并且“其他方式”显然很容易,以至于不值得你花时间学习它。

IME,事实并非如此。我已经在几种工具/语言中学习了这些“其他方式”,并且您几乎总是因为了解两者而获得更多的力量和生产力,但有很大一部分开发人员因为他们假设而对您嗤之以鼻的风险如果您真的擅长“另一种方式”,那么您正在这样做,因为您不会编码。正因如此,真正了解时间线的全部深度和微妙之处的开发者很少,几乎没有人会谈论如何做好这件事

实际上,我使用时间线为您几乎可以肯定在过去几天内去过其商店的客户开发可扩展的企业级 Flash 应用程序,因此我在这方面确实有相当多的经验。我的经验法则是,如果 stop() 对程序的整体功能不重要(它只是视觉上的东西),它是可以的。但是,一段时间后继续添加它会变得乏味,因此当您到达没有截止期限压力的地方时,您可能会在某个时候将其替换为使用addFrameScript执行 stop() 的类。

时间线代码的最佳用途是当您需要同步事物时(例如,使用流式声音,它具有绝对零的 Actionscript 句柄来获取它)。在叙述者说“单击 thingamajig”的精确点处生成冒泡事件,并且您已将光标移动到 thingamajig 上。然后,在使用流声音控制时间线父级的 AS 代码中(或祖父级,或其他任何位置——捕捉事件的位置),您会将 thingamjig 置于切换状态(例如通过更改数据模型thingamajig负责显示)。

非常非常偶尔,我会使用时间线代码来做一些更重要的事情。一个例子是,由 Flash Builder 编译的 swf 知道它的舞台是什么颜色,但由 Flash Pro 编译的一个不读取 swf 的字节就不会。我有一个淡化图形的类,有时只能获得真实的舞台颜色,具体取决于它的编译方式(我不会阅读字节的混乱——坦率地说,这很荒谬)。所以,我只是假设我们正在从白色或接近它的东西淡入(我们大部分时间都是这样)。对于不是这样的罕见情况,我在 Class 的 ASDOCs 中指出,只需从时间轴填充颜色变量即可,而不必担心如何通过依赖注入将其放入其中。我认为这是一个穷人Flash 组件属性面板。

希望能为您指明正确的方向:)。

于 2013-03-26T03:01:50.637 回答
1

我认为这取决于您的意思是否可以。(不,我不是比尔·克林顿)

您将很难得到对此的积极回应,因为 SO 社区的大多数人都是开发人员,并且通常不是使用 Flash IDE/时间线编码的忠实拥护者。

话虽如此,我还是尽量保持开放的心态,并意识到 Flash IDE 在快速创建动态图形等方面占有一席之地。没有什么说你不应该在时间轴上编码,如果你绝对不应该这样做,他们不会让这成为可能。

我认为当您开始与其他开发人员合作并且必须弄清楚他们在某些影响事物的电影剪辑中将一些代码埋在时间线上的位置时,就会出现问题。对于小型项目,这并不是一个真正的问题,进入更大的团队(一次 3-5 个开发人员,也许更多)然后能够独立和协作工作成为一个挑战。

最后一点,因为您说您只是在学习 OOP。AS3 是一门很棒的语言,非常有趣,运行时提供了许多功能,因此您可以跳过 C/C++ 等中的一些细节。但是时间轴的概念是 AS3 独有的。因此,如果您学习基于时间轴做所有事情,那么转向说 C++、Java 或 C# 或任何其他 OOP 可能会变得更加困难。现在我不会强调这一点,因为你刚刚开始滚动,但只是在你前进时要记住的一些事情。

编辑(回应布兰肯希普女士的好回答和米尔先生的评论)

我认为开发人员方面有些傲慢。我可以为自己说话,我通常不是 WYSIWYG 编辑器的粉丝(除非我尝试构建它们,然后它们就可以了 :)。

有几个原因:

  1. 在我过去的经历中,它们非常糟糕(以 Word 或 DreamWeaver 的代码输出为例,尝试在一些妈妈和流行音乐家在其中一个应用程序中拼凑的网站上工作,你也会开始讨厌它)。

  2. 如果有人能够完全正确地做到这一点,那将使我积累的很多知识无效(所以它让我进入防御立场,而不是客观有效的理由,我知道)。

  3. 与更大的团队合作寻找代码是关键 + 代码编辑器很糟糕(与任何替代品相比,Flash Builder [我选择的工具]、FDT、FlashDevelop、IntelliJ [我朋友的选择工具])。

  4. 来自不包含与时间线类似的任何内容的 OOP 背景,并且可能会回到这些技术。你可以选择擅长一件事或擅长五件事你选择什么?(我大大简化了,但希望你能明白要点)。我学会了使用 Eclipse 编写 Java,我可以使用相同的工具编写 C++、C、PHP 等。这并不是说我实际上总是使用 Eclipse 来处理所有事情(最近一直在使用 SublimeText),但我喜欢它始终是一种选择。顺便说一句,我不是 Eclipse “纯血统”,我很早就开始在记事本中使用 Flash IDE 和 HTML/JS,使用 Visual Studio 一段时间,最终被推入 Eclipse,但我喜欢它万物一体。

归根结底,在这种开放式的情况下,有太多因素不能说一种解决方案就是一切都结束了。打个比方,如果你要建造一个鸟舍,你可能只需要一把锤子、一些钉子​​和一些木头。相反,如果您想建造自己的人类房屋,您将需要一些不同的工具(可能包括锤子、一些钉子​​和木头)。

还有一个相关的 SO 帖子(重新散列了许多相同的点): Why not use Interface Builder

于 2013-03-26T02:11:11.697 回答