Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flash As3在线人数_Actionscript 3_Flash_Flash Cs5 - Fatal编程技术网

Actionscript 3 Flash As3在线人数

Actionscript 3 Flash As3在线人数,actionscript-3,flash,flash-cs5,Actionscript 3,Flash,Flash Cs5,我已经创建了一个罐子,我想装满萤火虫,这取决于有多少用户在线 我做了一些挖掘,发现了如何创建XMLSocket。它工作,但我不知道如何获得信息有多少人在线,而且它需要一个CMD窗口运行所有的时间 我找到的第二种方法是通过我在Apache服务器上运行的PHP、MYSQL,但我找到的教程和脚本对我来说并不适用。我没有创建所需的表 我的问题是,在页面/闪存文件中查找当前在线用户数的最简单方法是什么?有没有一种快速的方法可以在flash中完成,而不必使用MYSQL或PHP?没有,没有一种简单的方法可以只

我已经创建了一个罐子,我想装满萤火虫,这取决于有多少用户在线

我做了一些挖掘,发现了如何创建XMLSocket。它工作,但我不知道如何获得信息有多少人在线,而且它需要一个CMD窗口运行所有的时间

我找到的第二种方法是通过我在Apache服务器上运行的PHP、MYSQL,但我找到的教程和脚本对我来说并不适用。我没有创建所需的表


我的问题是,在页面/闪存文件中查找当前在线用户数的最简单方法是什么?有没有一种快速的方法可以在flash中完成,而不必使用MYSQL或PHP?

没有,没有一种简单的方法可以只在flash中完成,而不使用任何外部部件(PHP、MYSQL、Java等…)。请记住,Flash是在本地运行的,因此需要与PHP或类似工具交互,以便与服务器交互,告知服务器用户的活动,并询问服务器其他用户的活动(在线用户数)

如果您只想在线显示用户,我推荐您发布的示例中显示的方式。当用户看到活动时,只需更新数据库,当x分钟内未看到活动时,将用户计为脱机。除非您希望用户以任何方式相互交互,否则没有必要为此涉及XMLSockets


如果您想要的不仅仅是在线显示用户,我建议您在ActionScript中使用XMLSockets并查看PHP套接字。

我不这么认为,flash player必须需要一种在服务器上“检查”在线用户数量的方法。最简单的方法是向服务器脚本发送一个URLRequest(我希望类名是正确的),该脚本可以是php或aspx(或任何服务器技术)脚本/页面

该服务器脚本应返回站点拥有的用户数

e、 g


下一部分是跟踪用户数量的php脚本(或任何其他服务器脚本)。我想你应该把它作为另一个SO问题发布?

我让它工作了,但是我想链接php文件,而不是通过它的HTTP地址,而只是相对于.swf文件的路径(只是myFile.php或path/myFile.php)

我将As3接收的文本转换为int,因为我还不知道如何发送veria

主PHP文件(as3连接到的文件):

函数文件通过
echo$count发送在线访问者的数量

是的,您可以在没有数据库(MYSQL)和PHP的情况下完成它;但您仍然需要(媒体)服务器。 如果您的“唯一”目的是统计连接的客户端数,我不会建议您执行以下操作,但如果您有理由并且可以访问Flash Media Server,您可以尝试以下操作:

在服务器端:

  • 在FMS上创建应用程序(文件夹),在该文件夹内创建main.asc文件
  • 在main.asc中;创建(远程)(例如:
    用户\u so
  • 应用程序.onConnect
    事件上监视连接客户端。将每个连接客户端添加到此处理程序中的SharedObject
  • 还要注意在
    应用程序.onDisconnect
    事件上断开客户端的连接。从此处理程序内的SharedObject中删除每个断开连接的客户端
  • 在客户端:

  • 当应用程序加载到浏览器中时,将每个Flash客户端连接到FMS(URI中有新的应用程序文件夹路径)
  • 观察
    NetStatusEvent.NET\u状态
    事件和
    “NetConnection.Connect.Success”
    code。连接时;创建远程服务器并从服务器获取远程服务器
  • SyncEvent.SYNC
    事件侦听器添加到
    SharedObject
    。当用户连接或断开与服务器的连接时,这将与每个闪存客户端同步
  • 在同步事件处理程序中,从事件响应中获取并统计用户数
  • 在Flash客户端上显示计数
  • 请参阅,特别是应用程序类。 同样有用的是:


    希望这有帮助。

    您是否希望该示例在不创建所需表的情况下工作?我使用了PHP脚本,但无法访问PHP文件中的变量,比如说我在PHP中有一个变量“$Cake=“lie””,如何从as3访问它,当我使用您的示例,然后使用e.target.data.Cake时,它会给我一个错误“在字符串上找不到属性,并且没有默认值”。@Simeon您需要
    在PHP中回显
    结果。还要确保对dataFormat使用了正确的设置:(在您的情况下,它应该是默认的文本)。然后只使用URLLoader的data属性访问string.Simeon,我认为不需要执行e.target.data.Cake。。正如Simon Andre所建议的,只需回显php脚本()的输出,e.target.data就会捕捉到它。
    
    var numberOfVisitors:Int = 0;
    
    function onLoaded(e:Event):void {
        numberOfVisitors = e.target.data;
    
        // now print this 'numberOfVisitors' where you want to on the client
    }
    
    var numVisitors:URLLoader = new URLLoader();
    numVisitors.addEventListener(Event.COMPLETE, onLoaded);
    numVisitors.load(new URLRequest("num_users.php"));
    
    AS3 file:
    
    NewRequest = new URLRequest("numOnline.php");
    var numberOfVisitors:int = 10;
    var NewRequest:URLRequest;
    var UrlLoader:URLLoader;
    
    UrlLoader = new URLLoader();
    UrlLoader.dataFormat = URLLoaderDataFormat.TEXT;
    UrlLoader.addEventListener(Event.COMPLETE, onLoaded);
    UrlLoader.load(NewRequest);
    
    
    function onLoaded(e:Event):void {
        trace(e.target.data);
        numberOfVisitors = int(e.target.data);
    }
    
    main PHP file (the file that as3 connects to):
    
    <?php
    include_once 'config.php'; //This file would contain the variables needed to connect to the database with $link, below
    include_once 'functions.php'; //We include the functions we have created
    
    $database = "online";
    
    $link = mysql_connect($server, $db_user, $db_pass)or die ("Could not connect to mysql because ".mysql_error());
    mysql_select_db($database)or die ("Could not select database because ".mysql_error());
    
    usersOnline(5); //We call the usersOnline function with a time span of 5 minutes
    
    showUsersOnline(1); //Show the number of users online, and the list of users
    
    mysql_close($link);
    
    ?>