2012-01-02 80 views
0

保持考虑到ActionScript 3的事件HTTPStatusEvent:HTTP_RESPONSE_STATUS,这是空气只能从网站(和不闪9/10)如何将事件添加到URLLoader类?

报价:

Language Version: ActionScript 3.0 
Runtime Versions: AIR 1.0, Flash Lite 4 

我想通过扩展来添加同一事件Actionscript 3 的Flash(9/10)的HTTPStatusEvent类。我正在处理Adobe Flash CS3,我试图得到一个URL加载器的“最后”位置(我打电话给一个PHP的头(“位置:...”);)所以改变后我需要位置。这应该直接通过Flash,我不能使用其他的PHP代理。另外,我找不到AIR HTTPStatusEvent类的源代码,我需要获取该事件(具体而言,AIR类的responseHeaders和responseURL属性)。

当然,如果您知道任何其他方式来完成此任务,请随时分享。

回答

0

你不能这样做。

想一想:您正在尝试通过扩展从该处引发的事件类来向URLLoader类添加行为。形象地说,有点像改变纸张大小,当你只写信给你的隔壁邻居,现在你希望他们去海外 - 除非你也给他们的邮件主,这不会是非常成功的...

我已经偶然发现了很多讨论这个问题的论坛主题,他们中的大多数人似乎都同意Adobe在FP10/AIR due to some sort of security issue之前阻止访问Flash版本中的响应标头。我不确定这些信息有多少是准确的,但我确信无法解决这个问题 - 在旧版Flash版本中,不能获得Location:头文件

您将不得不寻找其他解决方法。例如,如果您有权访问PHP脚本,则可以添加包含重定向位置的HTML注释,并在ActionScript中解析该值。

<!-- Location: http://google.com/ --> 
+0

谢谢。我无法访问该脚本。 无论如何,我应该如何接近扩展普通课程的使命(使用我所需要的例子不会很糟糕)?我会玩弄它。 – Dandy 2012-01-03 01:42:24

+0

您可以扩展任何常规类而不会有任何问题。只是URLLoader为“外部世界”提供接口,这是Flash Player的基本功能 - 您可以覆盖现有的方法并使用已有的方法完成各种各样的任务,但是没有办法将新功能添加到核心API。 – weltraumpirat 2012-01-03 02:36:40