本网站建设与设计教程将详细解释如何用Flash共享服务器创建简单高效的登陆计数器。
你可能会想为什么要用FCS创建这样一个程序?用cgi, asp, 或者 cfm 建立这样一个系统,很容易,但是这样做需要了解服务器端语言,而且要把这些输出结果与Flash 结合在一起。这些都是flash的直接作用的结果,无需在你的服务器上增加任何压力,即使你有开发包在运行。另一件好事就是不需要数据库,这样就使得这一系统的建立显得更为简单。
要记录页面被登录或访问的次数,我们会使用服务器端的共享对象。服务器端的共享对象有两种,持续性的和非持续性的。这意味着如果没有人连接到共享对象上,如果是持续性对象,数据库就会被保存,反之SO就会被删除。我们将选用持续性的共享对象以计算登陆次数,因为不想因为连接不到对方而导致数据丢失。
在有的图中你可以看到一小段计数器影片,是在flash中做出来的。这段影片没什么特别的只是一个灰色的矩形框,中间用一个动态的矩形框。看看我是怎样把这些放到一起的。
我们要做的第一件事就是编写服务端actionscript。如果到目前位置你都只是使用共享组件,这种方式对你来说是个不错的选择。这些代码并不是很难懂,我们不妨来一行一行的看。
第一行是application.onAppStart() function,这一行在程序每一次启动的时候就会运行起来。我们要做的就是获得一系列共享对象,并找出共享对象上的计数值。这里的计数值就是这一页面(或是放置影片的地方)曾被浏览的次数。
要得到共享对象,我们使用SharedObject.get().在我们把共享对象的名字也是文件名放到其内部,无论共享对象是否是持续的。在将持续性共享对象转换成非持续性的,或者把非持续性对象改成持续性的都一定要谨慎细心,因为这是两种完全不同的共享对象。如果你在持续性对象的参数点上放了"false"这样一个单词你就无法登录到持续持续性对象的页面。持续性与错误二者是不相容的两种判断。
比如说SharedObject.get("计数器",正确); and SharedObject.get("计数器",错误);就是完全不同的。
在我们的实例中,我们把SO 放在了可变化的计数器SO上。然后我们把变化的计数器得出的计数值成为暂时计数而且还要检查一下是否还未确定。; 如果未确定,就说明这一程序是第一次运行,我们把默认值设为零。要在SO中得到变化的计数值,我们使用getProperty(propertyName); 要在服务器端设置值你就可以使用setProperty(variableName,value);
所以在我们的案例中我们希望能设置计数器SO的计数值为零。所以我们以前都是写这样一段代码counterSO.setProperty("count",0);记住从服务器端设定值,所有连接到SO的客户都会收到onSync的通知说SO内部值已经改变。这里我们不对这一问题做过多探讨。
我们还将要开始设定一个变量叫做lastIP。稍后他会被用来测试是否是同一客户一直在重新加载页面或者频繁的从别的页面跳回到该网站制作上。我们很不希望看到计数的结果上涨是因为有人在恶作剧一样重复加载个几百次。这种计数器说实话会让人很不满意。