1

不确定这个问题是否属于这里,但我会尝试。所以我即将把我的项目从 Director | Shockwave Player(如果你听说过这些)到 Flash Player 的原因有很多,当我在考虑如何更好地开始时,我遇到了一个让我很想知道的问题。说到点子上了。

目前在 Director 中,用户界面中的每个游戏窗口(如小警报或包含大量元素的大窗口)都是根据需要绘制的- 意味着实际窗口的图形图像是从大量图形的配置(各种属性,如宽度、高度和所有元素及其属性)组合在一起的(例如,窗口背景由 9 个小块组成,如 4 个角,动态宽度和高度的角落之间的 4 个中间件和填充窗口的 1 个中央件),然后添加到舞台。如果我们想更改配色方案或改进元素中的某些内容,这种方法可以轻松编辑每个图形元素,而无需重新绘制实际窗口和其中的所有内容。它还保存资源,因为仅在请求时才绘制窗口。

现在我必须弄清楚是否值得在 Flash 中编写这样的代码,而不是仅仅创建所有窗口并将它们放入库中并在请求时添加到阶段。你怎么看?是否值得编写这样的实现?

4

2 回答 2

1

IMO,这取决于 1)您对 Flash 的绘图 API/图形类的舒适程度,以及 2)每个窗口/对话框需要的灵活性。

如果将它们作为静态对象放在一起更容易 - 并且如果它们不一定需要灵活地改变尺寸/样式(你一方面可以数一数他们需要改变多少次,因为它最初完成了在多年前的 Director 中?),这样做显然比花费时间/精力动态重新创建它们更容易,特别是如果您对 Flash 的绘图 API 不太熟悉。

也就是说,使用 Flash 的绘图 API 可以动态完成很多工作,因此如果您有时间/兴趣,如果您想熟悉绘图 API,我当然建议您深入研究并以“正确”的方式进行操作。

我做这种事情的方法通常是这样的:

  • 创建一个扩展 Sprite/MovieClip 的单独类;类似“Dialog.as”的东西。
  • 创建公共 init()、show() 和 hide() 方法以及私有 build() 方法。
  • init() 仅在您的应用程序初始化时调用一次,并采用一些全局参数在内部保留(填充、颜色等)。
  • show() 接受文本(字符串)或什至 Sprite/MovieClip 的参数——无论您想在此对话框中显示什么。当被调用时(当你想生成一个窗口时),它使用这个——加上最初在 init() 期间传入的任何 init 参数——来绘制自己,然后取消隐藏自己(在 .alpha 属性之间,或者简单地设置.visible 属性)。
  • 当您想关闭对话框时,请确保调用 hide() 方法,该方法首先隐藏自己,然后清理创建的任何内容(删除侦听器等),以便下次调用它时可以重新绘制自己.

向这个对象传递一个对舞台的引用(在原始的 init() 调用中)也可能是有意义的,这样它就可以在舞台上相应地居中和调整自己的大小,并将自己添加到显示列表的顶部,这样它总是高于一切。

我希望这有帮助。

于 2011-06-29T23:43:33.930 回答
0

如果是 2D 你可以检查这个:

http://pushbuttonengine.com/

如果是 3D,您可以从这里开始:

http://alternativaplatform.com/en/alternativa3d/

我也可以建议你 Unity3D 但这不在 Flash 中

希望能帮助到你

于 2011-06-29T23:41:58.173 回答