首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在AIR应用程序中包含mxmlc flex编译器吗?

可以在AIR应用程序中包含mxmlc flex编译器吗?
EN

Stack Overflow用户
提问于 2013-09-11 19:13:28
回答 1查看 211关注 0票数 1

我目前正在用Flex SDK为web开发一个SWF3D播放器。我的目标是创建一个air应用程序,允许用户加载模型并将其导出到.swf 3D player,从而使这些3d模型在web上可见。我正在使用FlashDevelop。

我最初的目标是将mxmlc编译器和整个flex sdk包含在air应用程序的bin目录中,并使用带参数的airs本机扩展(命令行)运行这些程序。问题是flex sdk大约有800Mb大小,运行mxmlc同样需要JRE。

有没有一种方法可以在我的air应用程序中包含一个不需要800mb+的简约编译器?我知道我可以输出一个通用的swf,它首先加载一个配置文件,其中包含模型和纹理的路径,然后再加载这些配置文件,但我希望模型和纹理包含在swf中,以确保它们不会被轻松下载。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-12 01:10:01

这并没有回答所问的具体问题,但是评论太长了。

您的问题不是如何在AIR中包含flex编译器,而是如何阻止SWF中的模型和纹理被轻松下载。

首先,没有100%安全的答案;SWF格式很容易反编译(所以每个SWF嵌入一个文件是不可能的),如果决心足够大,人们就可以查看应用程序的内存来找到他们需要的东西;这一切都是为了阻止简单的复制。

在我的脑海中,假设你的最终目标是一个在线3D模型查看器,以下是你可以做到的一些方法:

1)有自己的格式

虽然在技术上并不是不可能的,但这是相当笨拙的;基本上,您可以编写自己的格式来存储和显示模型(基本上,大多数3D建模软件都是这样做的)。这意味着如果有人获得了一个模型文件,除非他们编写一个解析器(当然,您需要保护您的显示SWF),否则这个文件对他们来说是无用的。如果您的查看器的目的是供其他用户购买模型,那么他们将需要一种他们可以使用的格式,因此您的工作流程如下所示:

创建通用格式的模型->转换为自定义格式显示在您的播放器->用户浏览并点击“购买”->他们下载通用格式的文件

2)从您的站点加载3D模型

最简单的选择是直接从服务器加载模型,类似于加载图像的方式。要阻止人们直接下载文件,请将它们存储在htdocs文件夹的上方,并通过闪存中的本地URI访问它们。因此,您的服务器文件系统如下所示:

  • 楷模 型号1 模型2 ...
  • 文档 索引.html 3DPlayer.swf // 使用“../models/Model1”路径加载模型

因此,只有您的SWF可以访问模型(尽管从技术上讲,因为它是一个文件下载,所以它可能在浏览器缓存中-您应该对其进行测试)。要真正将模型放到models目录中,您需要有对服务器的FTP访问权限,或者需要创建一个简单的脚本(使用PHP等)来上传它们。

SWF 3)将资产流式传输到您的

如前所述,您可以使用ColdFusion之类的工具按需直接将资产流式传输到您的SWF。虽然我没有使用ColdFusion的经验,所以我真的不能说这是如何工作的,但它应该不会太难

4) DB连接

假设您的模型作为文本blobs存储在数据库中(例如MySQL或MongoDB),您可以直接与SWF连接,也可以使用PHP和AMFPHP连接到数据库并以这种方式流式传输模型。

您需要实现一些安全性,以确保人们不能欺骗您的服务器调用,但是连接和返回值的实际代码并不太难。作为一个额外的好处,你不受SWF格式的约束,如果需要,你可以实现JS显示等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18739626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档