日期:2013-11-28  浏览次数:20706 次

基于网页的留言板,我们曾经见得很多,一个完整的留言板包括三个部分:
1.  显示留言的页面(显示朋友们给我的留言)
2.  填写留言的页面 (向后台提交信息)
3.  数据库(用于保存后台信息)
关于如何制造基于网页的留言板,不去多作解释,可以参考相关材料。
就目前而言,FLASH是不可以直接操作象ACCESS, SQL, Mysql 等数据库的,他只能依托ASP ,PHP ,JSP等其他的言语来实现数据的提交和查询。同时,FLASH还可以和XML对接,实现一些数据的操作。
 
FLASH和ASP的交互
无论是ASP,PHP还是JSP等其他言语,原理大都一样,本人对ASP熟悉一点,所以以下只讲解FLASH与ASP的对联;
查看FLASH的协助文件,可以找到好几种的交互方法,
本人使用最多的还是:
loadVariablesNum(url:String, level:Number, [method:String]) : Void
loadVariablesNum(参数1,参数2,参数3),参数1为变量所处位置的绝对或绝对 URL,参数2为一个整数,指定 Flash Player 中接收这些变量的级别
参数3为发送变量的 HTTP 方法,常用的有"get"和"POST",推荐使用"POST"方法。
例1:新建一个flash文件,拖一个可输入的文本框组件,取实例名为name_txt,再拖入一个按钮组件到场景中,取实例名为send_btn,在第一帧上写

      _root.send_btn.onRelease=function()
      {   
         if(_root.name_txt.text!="")
          { 
            myname=_root.name_txt.text;
            loadVariablesNum("write.asp",0,"POST");
               }
            }

那么,测试影片后,在文本框中,输入一个不为空的字符后,点击发送按钮后,输入的内容,将被提交到同一个文件夹中的名为"write.asp"中去!
write.asp通过Request.Form("myname")的方法,就可以得到提交过来的数据,这里就简单的实现了 FLASH向ASP提交数据。
接下来看看FLASH如何从ASP读数据:
例2:新建一个flash文件,拖一个动态文本框组件到场景中,取实例名为read_txt,在第一帧上写

     loadVariablesNum("read.asp",0,"POST");
     _root.read_txt.text=myname;

     理论上测试后,read_txt文本框会显示read.asp提交过来的myname中的值,但是有时候不能够保持实时性,常常得不到数据,置信也有许多朋友
     会遇到同样的问题,这里讲两个小技巧。
 
     技巧一:
     首先可以在FLASH初一个变量为 active_old=0; 在ASP中Response.Write("active_new=1")
     那么FLASH里可以写上:    

 active_old=0;
     _root.onEnterFrame=function()
     {
     loadVariablesNum("read.asp",0,"POST");
      _root.active_old=active_new;
      _root.read_txt.text=myname;
      if(_root.active_old==1)
      {
         delete _root["onEnterFrame"];
          } 
 
     }

    此段代码表示,开始FLASH会不断地访问read.asp,read.asp会把变量active_new传递给FLASH中的_root.active_old,当_root.active_old改变后,
    将停止事件。
 
    技巧二:
    使用loadVariablesNum("read.asp?temp="+random(10000),0,"POST");的方式,在每次访问时会得到最新的数据,不会再使用缓存中的信息。
   
关于ASP中的代码如何书写,不再多作解释,重点讲解FLASH如何精确和及时得到数据库里的数据,达到我们期望的功用。
 
[备注]
     我们常会遇到,中文提交到数据库后,数据显示出来为乱码,次要是由于编码的缘由,只需在ASP中写上   codePage=”936”%>
 
FLASH和XML的交互
   
应该来说,用XML和FLASH来交换数据,还是不错的选择,首先,XML可以依据我们的需求,很清晰地定义其结构,FLASH也可以很容易去解释信息。
 
例3:

myxml=new XML();    //创建一个XML新对象
myxml.ignoreWhite=true; //空白忽略
myxml.load(“music.xml”);  //加载同目录下的music.xml文件
myxml.onLoad=function(success)
{
   if(success)
   { 
     ReadXML();
   &nbs