Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将HTML5 Canvas WebGL游戏移植到Flash ActionScript 3.0_Javascript_Actionscript 3_Html5 Canvas_Webgl_Porting - Fatal编程技术网

Javascript 将HTML5 Canvas WebGL游戏移植到Flash ActionScript 3.0

Javascript 将HTML5 Canvas WebGL游戏移植到Flash ActionScript 3.0,javascript,actionscript-3,html5-canvas,webgl,porting,Javascript,Actionscript 3,Html5 Canvas,Webgl,Porting,我在一月份为这个网站创建了一个新的版本(我知道很晚了,我直到昨天才发布)。现在我想把它移植到FlashActionScript3.0上,用于大学作业 我精通C/C++和Java等静态语言;以及Python和JavaScript等动态语言。不过我不知道ActionScript,但因为它是ECMAScript的子集,所以应该很容易理解 我想学习ActionScript3.0中的编程,这样我就可以在Flash中移植我的游戏了。更具体地说,我想了解更多关于: ActionScript与浏览器和服务器端

我在一月份为这个网站创建了一个新的版本(我知道很晚了,我直到昨天才发布)。现在我想把它移植到FlashActionScript3.0上,用于大学作业

我精通C/C++和Java等静态语言;以及Python和JavaScript等动态语言。不过我不知道ActionScript,但因为它是ECMAScript的子集,所以应该很容易理解

我想学习ActionScript3.0中的编程,这样我就可以在Flash中移植我的游戏了。更具体地说,我想了解更多关于:

  • ActionScript与浏览器和服务器端JavaScript有何不同,以及基础知识
  • ActionScript中的OpenGL编程(包括加载纹理、着色器等)
  • 如何使用2D HTML5画布式API在Flash中创建HUD(在我的游戏中,我有两个画布,一个用于3D游戏,另一个用于平视显示)
  • 支持ActionScript中的向量和矩阵计算
  • 如何在Flash中加载音频和精灵等资产
如果您能给我提供一个链接,让我可以从中了解更多关于这些主题的信息,我将不胜感激。最好采用更直接的实践方法

如果你能用JavaScript检查我的源代码,并为我提出解决这个问题的最佳方法,那将更有帮助


和自身的代码可以在my中找到。

ActionScript和JavaScript的核心非常相似。在某些方面,您可以认为ActionScript更像是在ECMAScript之上分层的健壮库。有一些不同之处(即ActionScript喜欢将自己视为基于类的oop,其中JavaScript是基于原型的),但如果您对其中一个比较满意,那么您应该对另一个比较放心

ActionScript有一个基于类的继承系统,并支持接口(但如果需要,您仍然可以执行一些原型魔术,但不推荐这样做)。它还支持强类型对象

var object:MovieClip = new MovieClip();
这将强力键入
对象
变量作为
MovieClip
类的实例

如果你的游戏是非常3D密集型的,那么你会想看看新的Flash 11和类。这些暴露了一个低水平的GPU加速API,在Flash 11之前是不可能的。你可以用Flash10做一些有趣的3D东西,但你通常使用的是非硬件加速的。Flash 11目前处于测试阶段,但应该很快就会推出。FlexSDK有一些测试版,可以让您针对Flash11播放器进行编译

还有相当多的3D库构建在这些低级api之上。如果你四处寻找它们,它们很容易找到。但我建议在深入研究3D库之前,先对ActionScript的工作原理有一个深入的了解

无论您使用flash 11还是flash 10,flash中的HUD内容都很简单。对于“经典”flash,您需要熟悉他们在flash中使用的概念。只要确保显示顺序正确,您的HUD
DisplayObject
将始终位于渲染的“顶部”
DisplayObject

对于Flash 11,
StageVideo
Stage3D
对象位于舞台正上方,但位于所有连接到舞台的普通Flash
DisplayObjects
后面。因此,在这种情况下,我会让
Stage3D
api处理所有繁重的渲染工作,并使用传统的显示堆栈处理HUD元素

您可能还想通过FlashCS5.5抓紧时间。如果你是一个程序员(我假设你是,因为你在这里发布),它不会让你的眼睛流血试图编码。FB基于eclipse,它相当不错,但并不完美。但是,如果您拥有免费的FlexSDK,并且不介意使用命令行,那么就可以快速、廉价地开始编译SWF(也称为免费)

还有,调查一下。我已经有一段时间没用过它了,因为它的内置分析器已经切换到FB了,但它可能对你有用

FlexSDK非常简单

[Embed(source="logo.gif")]
public var LogoBitmapData:Class;
然后稍后实例化该类:

 var bitmapData:BitmapData = (new LogoBitmapData()) as BitmapData;
然后在你想去的任何地方使用它

只是一个关于Flex的注释。Flex是一组构建在普通FlashAPI之上的UI库,FlexSDK包括用于编译MXML和ActionScript代码文件的库和工具。因此,尽管听起来您应该使用FlexSDK来编译Flex应用程序,但您也可以使用它来编译直接的ActionScript代码

和有内置的类

至于教程或参考资料,我真的没有什么可以提供的。我发现互联网上关于ActionScript编程的大部分信息都是随意的(当你能找到一些不是由图形设计师写的东西时)。我会仔细研究,看看你能不能找到对你有意义的东西

很明显,关于这方面我还有很多要探讨的,但希望这能给你一个正确的方向。

欢迎来到AS3:)

@32bitkit在IDE信息方面胜过我,但我绝对推荐Flash Builder。这是一个真正的工具,如果你要做任何真正的AS3工作,它是值得的

就实际教程而言,它以编写一些最好的内容而闻名。他有许多很棒的教程,但以下两个是AS3特别优秀的入门教程:

  • 本教程很好,因为它解释了AS2(非常类似JavaScript)和AS3之间的差异。忽略它是基于使用Flash“IDE”的事实
  • 这一条很有用,因为它更多地介绍了语言本身,没有IDE或Flex框架的所有特征。它将帮助你理解语言本身
如第二个教程所示