Flash如何工作?

时间:2008-11-27 01:48:43

标签: flash

现在我正在为游戏开发一个面向小型画布的2D图形引擎,并且一直在寻找几个来源,以便将提示应用到我的系统设计中。但显然,最经过验证的解决方案是flash,所以我想知道Flash架构是如何构建的。我找到了一些关于Flash工作原理的资料,但大多数都是非常基础的,面向设计师和艺术家,但我想更多地了解系统的内容。我的下一步是下载Flex的源代码并浏览它,但在此之前,我想有一个“指南”,以充分利用我在代码库中的时间。有关良好在线资源和文章的任何建议吗?

谢谢!

编辑为了更清楚,我正在寻找Flash的内部工作方式,因为我的目标是制作类似于Flash的内容,但当然不是那么强大没有插件的浏览器。唉纯HTML + Javascript。

另外我之所以不使用Flash是因为它不符合我的要求(免费+没有插件),而且因为我的目标平台上没有Flash支持,除了我重新发明来这里享受乐趣和自我教育。哦,我已经知道如何使用Flash:)

3 个答案:

答案 0 :(得分:8)

嗯,Flash内容的根源是一个舞台对象(Stage类的一个实例)。该阶段是显示对象树的根节点,其中任何一个都可以包含图形资源(行,文本字段等)或其他显示对象。 Flash“工作”的方式是,每秒X次,Flash播放器将整个显示树绘制到屏幕上。播放器还从操作系统收集用户输入(KeyboardEvents等)并将其传递给已注册的任何对象。

然后,您作为内容创建者的工作是使用子项(类型为DisplayObject或任何子类)填充此舞台,Flash引擎将为您绘制到屏幕上。您可以使用Sprite,MovieClip和TextField等低级子级填充它们,这些子级是Flash内容的基本构建块,或者您可以实例化ScrollBarDataGrid这些更高级别的组件。与通常复杂的内部运作。

当然,您可以扩展这些类中的任何一个以包含您自己的自定义视觉效果或类逻辑,或者创建不属于显示树的非可视类。您可以加载其他Flash内容,或进行HTTP连接等等。

这就是假设你的意思是AS3。这有帮助吗?如果不是,你将不得不更具体地提出你的问题。 ;)

答案 1 :(得分:1)

如果您打算制作游戏,请远离Flex。说实话,查看源代码可能会让您感到困惑,而不是帮助您。 Flex非常适合GUI密集型应用程序,并有助于加速此类产品的开发。然而,它并不是非常快,也不适合游戏。

Flash的一个主要优点是你不必非常关心“内部工作”,尽管对它们的基本理解自然有帮助。

Flash Lite与它已经成熟的更大的兄弟有很大不同,所以不要过分关注它。

另外,对于上帝的爱,学习Actionscript 3.0并远离Actionscript 2. 3.0以各种可能的方式更好(至少对于我们的编码员而言)。

编辑:澄清: 关于术语Flash存在一些混淆。这一切有三个部分,在浏览器中运行的插件,“技术本身”和创作工具。所有这些都简称为Flash。 Flex更令人困惑。它是一个在Flash之上运行的框架。就像说Swing for Java(我从来没有用过那样比较可能是完全错误的)。您在Flex中可以做的所有事情也可以在Flash中完成。 Flex是免费的开源软件,但IDE,Flex Builder却不是。 即使您正在进行“纯粹”的动作脚本项目,Flex Builder也非常有用。但也有许多更便宜的替代品。我个人更喜欢FlashDevelop

答案 2 :(得分:0)

我发现的最好的链接(非常可悲)就是这个:

Architecture of Flash Lite