【问题标题】:Does Policy Request needs Delay?策略请求是否需要延迟?
【发布时间】:2024-04-17 10:50:02
【问题描述】:

我和我的朋友一直在用 as3 开发一款多人游戏。没有策略请求的测试在本地成功,但最后我们添加了它以便我们可以在浏览器上测试。

发生了奇怪的事情,因为它设法连接到服务器,但需要向连接按钮发送垃圾邮件才能开始发送数据。

有了计时器,问题就解决了,但我们不想等待 5 秒才能连接。我不知道出了什么问题,在互联网上几乎没有关于这件事的信息。有人尝试过这个问题吗?

【问题讨论】:

    标签: actionscript-3 flash cross-domain-policy


    【解决方案1】:

    这可能是因为 Flash 游戏必须先从 Web 加载到缓存中。它可能取决于互联网速度、计算机缓存、您正在使用的浏览器等。同样适用于所有其他文档、flash、HTML 等,在本地测试它可以让您即时访问,但从网络打开它需要时间

    【讨论】:

    • 游戏一开始就连接不上服务器。在尝试连接之前,它需要一个方向。所以缓存应该不是问题。
    【解决方案2】:

    策略请求不应该要求您手动添加延迟,所以肯定有其他事情发生。

    即使方法名为 Security.loadPolicyFile(),策略 直到需要策略文件的网络调用被加载,文件才会被加载 发布。调用 loadPolicyFile() 只是告诉 Flash Player 在哪里 在需要时查找策略文件。

    您无法收到策略文件请求何时收到的通知 启动或完成,并且没有理由这样做。 Flash播放器 异步执行策略检查,并自动等待 启动连接,直到策略文件检查完成 成功了。

    来源:http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html

    【讨论】:

    • 它确实可以连接,但我无法立即发送任何内容。第一次我们将计时器设置为等待 3 秒,但随后我们再次将时间增加到 6 秒。我知道这听起来一定很愚蠢。