actionscript-3 - Actionscript 3 - 检查互联网连接

标签 actionscript-3 flash-cs6

我在我的 Flash 文件中使用此代码

import air.net.URLMonitor;
import flash.net.URLRequest;
import flash.events.StatusEvent;

var monitor:URLMonitor;

function checkInternetConnection(e:Event = null):void
{
var url:URLRequest = new URLRequest("http://www.google.com");
url.method = "HEAD";
monitor = new URLMonitor(url);
monitor.pollInterval = 1000;
//
monitor.addEventListener(StatusEvent.STATUS, checkHTTP);
//
function checkHTTP(e:Event = null):void
{
if (monitor.available) {

       navigateToURL(new URLRequest("flickr.html"),"_top"); 

   } else {

       gotoAndPlay(1);

   }
}
monitor.start();
} 

我试图让闪光灯检查连接并导航到另一个页面,如果没有,它将重播。

它似乎不起作用。
我错过了什么吗?

我也将库路径添加到 aircore.swc。

它意味着是一个带有 Flash 的 html 页面,而不是一个 AIR 应用程序

干杯

最佳答案

(我声望太低,直接评论林天真的回答……)

我需要做一些更改才能让林天真的回答按预期工作:

  • 添加:
    urlRequest.useCache = false;
    urlRequest.cacheResponse = false;
    

    这个添加是必需的,因为即使连接确实丢失了,检查仍然成功,因为正在读取缓存。
  • 更改:
    if( textReceived.indexOf( _contentToCheck ) )
    

    到:
    if( !(textReceived.indexOf( _contentToCheck ) == -1) )
    

    需要进行此更改,因为虽然始终可以找到 ""(空字符串),但它是在索引 '0' 处找到的,这导致原始 if() 条件始终失败。
  • 添加:
    urlRequest.idleTimeout = 10*1000;
    

    在网络电缆与路由器物理断开连接的情况下,请求可能需要很长时间才能超时(老实说,我已经厌倦了等待几分钟。)

  • 进行上述更改后,我发现天真的代码运行良好:无论我如何断开/重新连接 Wi-Fi(在 iOS 和 Android 设备上),始终检测到连接状态的变化。

    关于actionscript-3 - Actionscript 3 - 检查互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559529/

    相关文章:

    闪存 as3 : anonymous objects creation when calling a function?

    apache-flex - Flex 中正确的字典/ map /树/哈希容器

    actionscript-3 - AS3 在特定框架上移动物体

    apache-flex - 什么导致 Flash 错误 #2012(无法实例化类)?

    actionscript-3 - ActionScript 3 - 声音文件对比。以编程方式创建的声音

    ios - AS3如何使用类绘制矩形

    ios - 外部加载的 SWF 文件中包含的 ActionScript 在 iOS 设备上将被忽略

    actionscript-3 - 如何让命中检测在 Flash 中工作?

    actionscript-3 - 从类访问时间轴对象,给出空对象引用?

    android - AIR 参数错误 : Error #2004: - Android