【问题标题】:How to load swf files in android game from S3如何从 S3 在 android 游戏中加载 swf 文件
【发布时间】:2019-10-02 04:38:22
【问题描述】:

我有一个 10 级的安卓游戏。菜单屏幕将有图标来加载关卡。每个级别都是一个单独的文件,例如 level1.swflevel10.swf。当游戏托管在 GoDaddy 中时,这些文件在游戏中加载正常。

问题
当我使用 public 设置将文件移动到 S3 存储(亚马逊网络服务)时, 文件正在浏览器中下载,但游戏中没有加载相同的文件。

有什么建议吗?

我尝试过同时使用这两种 S3 URL 格式..

我的结果是:

  • 在浏览器中工作
  • 在网站的 html 页面中工作
  • 在游戏中不工作

我的 crossdomain.xml 如下

<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
  <allow-access-from domain="*"/>
</cross-domain-policy>

但是,托管在 google 存储中的文件运行良好

if(lev==2) 
{
    URLArray[1] ="https://storage.googleapis.com/reverie/andriod_assets1/Reverie_8.swf"
}
if(lev>=3) 
{
URLArray[1] ="https://game.s3.amazonaws.com/levels/level"+1+".swf"
}

游戏可以加载并玩 2 级 游戏无法加载关卡 3

【问题讨论】:

  • 将文件作为数据下载到 File.applicationStorageDirectory,然后作为 SWF 从那里加载。
  • @Organis 相同的文件如果托管在 godaddy 中可以工作,但不能在 S3 中工作
  • 您的链接有错误。他们如何“在浏览器中工作”?问题出在您的上传设置中。检查section c: Public Access。还要检查您是否使用correct EndPoint for your region
  • 您的所有 AWS 链接都在 (Chrome) 浏览器中显示此错误:&lt;Message&gt;All access to this object has been disabled&lt;/Message&gt;。 Google 存储中的 .swf 可以下载。问题再次出在您的 AWS 设置中。确保您的 S3 bucket 具有适合您所在地区的正确 endpoint。那是xxx.amazonaws.com url 中的XXX。如果您不在美国,那么您的存储桶端点不是 S3。我自己 8 年来,自从我在英国以来,我不得不使用端点 eu-west。您在阅读他们的屏幕说明吗?不要只是快速单击确定所有内容,然后对锁定的文件访问感到惊讶。

标签: android amazon-web-services flash amazon-s3


【解决方案1】:

请验证您使用的endpoint 是否正确。

但是,建议的做法是使用 AWS SDK for Android 中的 TransferUtility 来访问您的 S3 存储桶。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-02
    • 2011-01-31
    • 2014-09-30
    • 2016-10-20
    • 2011-09-25
    • 2013-03-05
    • 2015-06-07
    • 2011-04-24
    相关资源
    最近更新 更多