现在我正在为游戏开发一个面向 Canvas 的小型 2D 图形引擎,并且一直在寻找几个来源以获取适用于我的系统设计的提示。但显然,目前最经战斗验证的解决方案是闪存,所以我想知道 Flash 的架构如何。我找到了一些关于 Flash 工作的资源,但大多数都是非常基础的,面向设计师和艺术家,但我想了解更多关于系统的内容。我的下一步是下载 Flex 的源代码并浏览它,但在此之前,我希望有一个“指南”来充分利用我在代码库中的时间。有什么好的在线资源和文章推荐吗?
谢谢!
编辑:为了更清楚,我正在寻找 Flash 的内部工作原理,因为我在这里的目标是制作类似于 Flash 的东西,但当然没有那么强大,它可以在没有插件的浏览器中运行。唉,纯 HTML+Javascript。
我不使用 Flash 的另一个原因是它不能满足我的要求(免费 + 无插件),并且因为我的目标平台上没有 Flash 支持,此外我在这里重新发明轮子乐趣和自我教育。哦,我已经知道如何使用 Flash 了 :)
最佳答案
好吧,Flash 内容的根是一个舞台对象(Stage 类的一个实例)。该阶段是显示对象树的根节点,其中任何一个都可以包含图形 Assets (线条、文本字段等)或其他显示对象。 Flash 的“工作原理”是每秒 X 次,Flash 播放器将整个显示树绘制到屏幕上。播放器还从操作系统收集用户输入( KeyboardEvents 等)并将它们传递给任何已注册的对象。
那么,您作为内容创建者的工作就是用子项(类型为 DisplayObject 或任何子类)填充此 Stage,Flash 引擎将为您将其绘制到屏幕上。你可以用像 Sprite、MovieClip 和 TextField 这样的低级子元素来填充它,它们是 Flash 内容的基本构建块,或者你可以实例化诸如 ScrollBar 之类的东西。或 DataGrid ,它们是具有通常复杂内部工作原理的高级组件。
当然,您可以扩展这些类中的任何一个以包含您自己的自定义视觉对象或类逻辑,或者创建不属于显示树的非视觉类。您可以加载其他 Flash 内容,或建立 HTTP 连接等。
假设您的意思是 AS3,那一切都是如此。这有帮助吗?如果不是,你将不得不让你的问题更具体。 ;)
关于flash - 闪存是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/322740/