URLLoader 轮询时卡住

2023-12-21

更新:不知怎的,这在浏览器中运行 flash 时有效,但如果从 IDE 运行则不起作用。如果您遇到同样的问题,您可能想尝试在浏览器中运行。

我正在制作一个聊天应用程序,它使用 Flash 和 Actionscript 3.0 从我的服务器重复读取文本文件。我用 URLLoader 打开文件,一开始工作正常。然而,在大约 10 次调用之后,URLLoader 就卡住了。

它不提供完成事件,不提供安全错误,不提供状态事件,也不引发异常。它根本不会触发任何事件。我什至在 URL 中添加了一个随机值,以确保这不是缓存问题。当然,我可以检测到它何时被卡住,但似乎没有任何方法可以解除它。即使我在 URLLoader 上调用 close() 然后将其设置为 null 并创建另一个,它也不会恢复轮询。

下面是轮询服务器并每两秒调用一次的函数。

private function check_server() {
 var url:String = "http://coworkthailand.com/say/snd/index.php?"+Math.random();
 if (loader != null) {
  trace("was already checking "+loader.bytesLoaded+" / "+loader.bytesTotal);
  return;
 }
 loader =  new URLLoader();
 loader.dataFormat = URLLoaderDataFormat.TEXT;
 loader.addEventListener(Event.COMPLETE, completeHandler);
 loader.addEventListener(flash.events.IOErrorEvent.IO_ERROR, 
  function(e:Event) { loader = null; trace("fail"); })
 loader.addEventListener(flash.events.SecurityErrorEvent.SECURITY_ERROR, 
  function(e:Event) { loader = null; trace("security error"); })
 loader.addEventListener(flash.events.HTTPStatusEvent.HTTP_STATUS,
  function(e:flash.events.HTTPStatusEvent) { trace("status "+e.status); });
 try {
  loader.load(new URLRequest(url));
 } catch (error:Error) {
  trace("Unable to load requested document.");
 }
}

这不是一个重要的项目,但任何想法将不胜感激!


对于这种情况,最佳实践要求使用 URLLoader 的单个实例;您很可能在某个地方被竞争呼叫阻塞。同样,您可以尝试使用一个简单的标志来检测加载程序是否正忙于现有的调用,然后再进行另一个调用;这是一个使用单个加载器每五秒发出请求的工作示例,显示单个加载器和“isOpen”检查:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="app_init()">    
    <mx:Script>
        <![CDATA[

            private var timer:Timer;
            private var loader:URLLoader;
            private var isOpen:Boolean;

            private function app_init():void
            {
                timer = new Timer(5000)
                timer.addEventListener(TimerEvent.TIMER, timer_tick, false, 0, true)

                loader = new URLLoader();
                loader.addEventListener(Event.OPEN, loader_open);
                loader.addEventListener(Event.COMPLETE, loader_complete);

                // Start the timer
                timer.start();
            }

            private function timer_tick(event:TimerEvent):void
            {
                // Check if the loader's busy before calling load, and/or close()
                if (!isOpen)
                {
                    // loader.close();
                    loader.load(new URLRequest("http://mydomain.com/myfile.txt"));
                }   
            }

            private function loader_open(event:Event):void
            {
                // Mark as open
                isOpen = true;
            }

            private function loader_complete(event:Event):void
            {
                // Do work

                // Mark as closed
                isOpen = false;
            }

        ]]>
    </mx:Script>    
</mx:Application>

希望能帮助到你!祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

URLLoader 轮询时卡住 的相关文章

  • 如何在Windows Phone 7中获取Wi-Fi和移动网络参数?

    我的应用程序需要以下移动网络参数 MCC 移动国家代码 MNC 移动网络代码 LAC 位置区域代码 CID 小区标识符 细胞信号强度 对于 Wi Fi MAC地址 信号强度 我还需要两个变体的设备 IP 地址 Windows Phone 7
  • 我如何知道我的 iOS 应用程序的蜂窝网络访问是否被禁用?

    我有一个 iOS 应用程序 它在应用程序启动时发出一些小型网络请求 资源更新等 如果用户在 iOS 设置中关闭应用程序的蜂窝网络访问 他们每次启动时都会收到 iOS 的有关网络使用情况的提示 有没有办法以编程方式知道此应用程序的蜂窝数据已被
  • 如何从 JW Player 5.1 中提取 .flv 流?

    问题是我的互联网连接速度很慢 并且视频不像 YouTube 那样缓冲 因此我想知道是否可以提取 JW Player 中正在流式传输的 flv 文件的 url 并直接下载它 做了一些初步研究 我发现了以下信息 主要视频网址 http ijf1
  • Flash 图表和图形的最佳解决方案是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道融合图表 http www fusioncharts com 还有其他好的解决方案或 API 用
  • Qemu flash 启动不起作用

    我有一本相当旧的 2009 年出版 嵌入式 ARM Linux 书 其中使用u boot and qemu 的用法qemu与u boot书中对二进制的解释如下 qemu system arm M connex pflash u boot b
  • Vagrant - 使用私有接口时如何配置 vagrant ssh?

    我有一个包含 3 个虚拟机的多虚拟机 vagrantfile 设置 其中两个虚拟机的 NAT 网络接口已禁用 并且仅在内部接口上使用静态 IP 副作用是我无法再跑步vagrant ssh foo连接到虚拟机 mode ruby vi set
  • 使用jquery调用AS3外部接口

    我正在使用ExternalInterface 调用嵌入在html 页面中的Flash 应用程序 以下代码工作正常 我正在使用按钮进行测试 document ready function button click function var a
  • 如何使用 VB.NET 打开受密码保护的共享网络文件夹?

    我需要在网络上打开受密码保护的共享文件夹才能访问 Access 97 数据库 如何打开文件夹并输入密码 在这里找到http www mredkj com vbnet vbnetmapdrive html http www mredkj co
  • Flash Builder 条件编译变量

    我正在使用 Flash Builder 4 5 并且我想在调试和发布版本之间使用条件编译 我了解如何使用条件编译以及如何定义编译器常量 我需要的是 IDE 在调试和发布版本之间设置的预定义常量 一种在调试和发布版本之间为编译器指定不同参数的
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 有没有办法将 SWF 转换为 SVG 格式?

    有没有办法将 FLA 或 SWF 转换为 SVG 格式 它可以是一个软件吗 或者甚至是网络转换器 我尝试了一些方法 但没有一个有效 所有这些似乎都已经过时了 不 SWF 支持的功能太多 而 SVG 格式无法创建有效的 SWF 版本 如果您只
  • 在 Flash Player 10 中打开 pdf

    我需要在 Flash Player 10 中打开 PDF 该 swf 不会在浏览器中运行 并且系统上不会有 adobe reader 程序 我需要知道是否可以在 Flash 播放器中打开 PDF 而无需以任何方式进行转换 我在谷歌上搜索了无
  • Python UPnP/IGD 客户端实现?

    我正在寻找一个开源实现UPnP http elinux org UPnPPython 中的客户端 更具体地说是它的互联网网关设备 http en wikipedia org wiki Internet Gateway Device Prot
  • 如何在亚马逊AWS上加载ena驱动程序?

    我正在尝试在 Ubuntu VM 上加载 ena 驱动程序 根据文档 我的虚拟机有vif低性能驱动程序 ubuntu ip 172 31 14 190 ethtool i eth0 driver vif version firmware v
  • 如何在 NLog 中记录网络目标的异常

    我正在使用NLog http nlog project org日志框架 并尝试获取任何 UDP 记录器应用程序中显示的异常和堆栈跟踪信息 例如Sentinel http sentinel codeplex com and Log2控制台 h
  • 为什么SOCKS5需要通过UDP中继UDP?

    The SOCKS5 https en wikipedia org wiki SOCKS SOCKS5协议 描述为RFC1928 https www rfc editor org rfc rfc1928提供对 UDP 的支持 总而言之 希望
  • 在没有流媒体服务器的情况下在 Flash 中录制 h.264 视频?

    是否可以在不需要流媒体服务器 如 fms wowza red5 的情况下从 Flash Actionscript 相机 即网络摄像头 保存 h 264 视频 我还想从麦克风获取样本数据 并在客户端对其进行转码 以便用户可以录制 h 264
  • 从java小程序获取正确的本地IP地址

    我想从我的 java 小程序确定本地 IP 地址 问题是当同一台机器上有多个 IP 地址时 该机器具有 LAN 和互联网连接 掌上电脑 VMWare 这是我的测试 public static void main String args tr
  • getElementById 无法在 的 Google Chrome 扩展中工作

    在我的 Google Chrome 扩展内容脚本中 我有以下内容 jQuery document ready function var player document getElementById player console log pl
  • Java快速检查网络连接

    我的问题相当简单 如果网络连接丢失 我的程序需要立即通知 我正在使用 Java 5 所以我无法使用非常方便的功能网络接口 http download oracle com javase 6 docs api java net Network

随机推荐