学做AS3.0留言板
作者:高原红 日期:2009-05-26
跟着康老学做AS3.0的留言板。一步一步来。
这是留言的代码:
程序代码
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.text.*;
public class Message extends MovieClip
{
public function Message()
{
init();
}
private function init():void
{
System.useCodePage = true;
info.text = "请你完整输入信息。"
btn_messOK.addEventListener(MouseEvent.CLICK,messOk);
}
private function messOk(e:MouseEvent):void
{
if (Mname.text==""||Mmess.text=="")
{
info.text="抱歉,你的信息输入不全,请你把内容填写完整!";
}
else
{
var loader:URLLoader=new URLLoader();// 声明一个URLRequest
var url:URLRequest=new URLRequest("add.asp");
url.method=URLRequestMethod.POST;// 设置传输方式为POST[转送数据量大不受限制]
var values:URLVariables=new URLVariables();// 声明一个URLVariables
values.user=Mname.text;// 设置要传输的信息
values.mess=Mmess.text;
url.data=values;//将values的值赋给data属性
//loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE,loaded);
loader.load(url);
//trace(url.data)
}
}
private function loaded(e:Event):void
{
var loader:URLLoader=URLLoader(e.target);
//trace(loader.data)
if (loader.data)
{
info.text="你的信息已经保存!";
Mname.text="";
Mmess.text="";
}
else
{
info.text="出错了:";
}
}
}
}
当然,除了代码,界面上必需安排:
1个实例名为“btn_messOK”的按钮。
2个“输入文本”对象:
一个单行,变量名为Mname,一个多行,变量名为Mmess
1个动态文本,实例名为info,用来显示信息。
最好上面各对象傍边再相应加点标签如:昵称,留言内容,信息提示及提交等。
好了,输出为SWF,放在 IIS 能够管理得到的目录中。
第二步:打开【记事本】,把下面这段代码拷贝过去,并且另存为 add.asp 文件,放在 SWF 同一目录中。
<%
username=request.form("user")
if username <> "" then
text = Request.Form("mess")
lk = Request.Form("lk")
ttime =now()
y=Year(ttime)
m=Month(ttime)
d=Day(ttime)
h=hour(ttime)
mm=Minute(ttime)
s=Second(ttime)
ymd=y&"年"&m&"月"&d&"日"&h&"点"&mm&"分"&s&"秒"
Posttime = ymd
strSourceFile = Server.MapPath("message.xml")
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
objXML.load(strSourceFile)
Set objRootlist = objXML.documentElement.selectSingleNode("fbook")
if objRootlist.hasChildNodes then
id = Cint(objRootlist.lastchild.firstchild.text)+1
else
id=1
end if
'老康按:vbCr是回车;vbCrLf是换行符,而vbTab是TAB键
brstr=vbCr&vbCrLf&vbTab
XMLnode=brstr&""&brstr & _
""&id&""&brstr & _
""&username&""&brstr & _
""&Posttime&""&brstr & _
""&text&""&brstr & _
"老康暂无回复!"&brstr & _
""&chr(13)
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
objXML2.async = false
objXML2.loadXML(XMLnode)
set rootNewNode=objXML2.documentElement
objRootlist.appendChild(rootNewNode)
objXML.save(strSourceFile)
Response.Write "&load_txt="&username
set objXML=nothing
set objXML2=nothing
end if
%>
这段ASP,看似复杂,其实本例加了一点点“花头”,比如:
开始一大段只是为你的数据项添加一个精确到秒的留言当时时间,
接下来有一大段是为了格式化你的XML数据库,让信息树左端自动加上数个“Tab”键值,相当好看,更主要的是,为你日后的人工编辑带来方便,否则,数据会混在一处。
格式化后的效果如下图所示:
除此之外,就是先从 Flash那里获取用户名及留言内容二个信息,装入XML文件,再添加XML节点,存回,对象清空。
第3步、初创数据库,见到数据库别怕,本例的数据库用最简单的文本格式!
打开【记事本】,本数据库需要起码一个初始字段,以后你的ASP水平提高后,完全可创建一个文档!
拷贝,并保存为“message.xml”文件,保存在以上同一目录。
<?xml version="1.0" encoding="gb2312"?>
<xml>
<fbook>
<item>
<id>1</id>
<username>我是第1位</username>
<Posttime>2005年10月29日10点49分52秒</Posttime>
<text>看了你的留言薄,发现还是空的。</text>
<lk>本人暂无回复</lk>
</item>
</fbook>
</xml>
谢谢你陪伴我这么多时间,该做的事全做了,现在你离自己第一个留言板好近!但愿测试成功!
大家可以提问题,千万别邮寄你的练习文件,我可没时间看哦。
可能还有不少问题!
IIS怎么装,在IIS中如何测试上面的结果,等等,具体问题具体说吧。
最后说说如何把本例移植到 AS3 的问题......
1、上面的二个“输入文本对象”在制作时用的是“变量名”,而 AS3 已经不支持这种做法,就得改成用实例名访问,比如:
xxxxx.Text
2、上述的变量定义在 AS3 中要求显式标明数据类型,这个应该没问题。
3、外部ASP访问问题,在AS3 中应该象下面这样:
btn_messOK按钮事件:
function Btn(evt:MouseEvent):void {
var theurl:String = "add.asp"
var loader:URLLoader=new URLLoader;
var url:URLRequest=new URLRequest(theurl);
loader.load(url);
loader.addEventListener(Event.COMPLETE,loaded);
......
}
function loaded(e:Event) {
......
}
接下去的事情更多了:
添加显示,主人回复,后台编辑,还有界面装饰......
继续玩吧,这可是基础。

在屏障老师的帮助下,又前进了一步。

这是留言的代码:
程序代码package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.text.*;
public class Message extends MovieClip
{
public function Message()
{
init();
}
private function init():void
{
System.useCodePage = true;
info.text = "请你完整输入信息。"
btn_messOK.addEventListener(MouseEvent.CLICK,messOk);
}
private function messOk(e:MouseEvent):void
{
if (Mname.text==""||Mmess.text=="")
{
info.text="抱歉,你的信息输入不全,请你把内容填写完整!";
}
else
{
var loader:URLLoader=new URLLoader();// 声明一个URLRequest
var url:URLRequest=new URLRequest("add.asp");
url.method=URLRequestMethod.POST;// 设置传输方式为POST[转送数据量大不受限制]
var values:URLVariables=new URLVariables();// 声明一个URLVariables
values.user=Mname.text;// 设置要传输的信息
values.mess=Mmess.text;
url.data=values;//将values的值赋给data属性
//loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE,loaded);
loader.load(url);
//trace(url.data)
}
}
private function loaded(e:Event):void
{
var loader:URLLoader=URLLoader(e.target);
//trace(loader.data)
if (loader.data)
{
info.text="你的信息已经保存!";
Mname.text="";
Mmess.text="";
}
else
{
info.text="出错了:";
}
}
}
}
当然,除了代码,界面上必需安排:
1个实例名为“btn_messOK”的按钮。
2个“输入文本”对象:
一个单行,变量名为Mname,一个多行,变量名为Mmess
1个动态文本,实例名为info,用来显示信息。
最好上面各对象傍边再相应加点标签如:昵称,留言内容,信息提示及提交等。
好了,输出为SWF,放在 IIS 能够管理得到的目录中。
第二步:打开【记事本】,把下面这段代码拷贝过去,并且另存为 add.asp 文件,放在 SWF 同一目录中。
<%
username=request.form("user")
if username <> "" then
text = Request.Form("mess")
lk = Request.Form("lk")
ttime =now()
y=Year(ttime)
m=Month(ttime)
d=Day(ttime)
h=hour(ttime)
mm=Minute(ttime)
s=Second(ttime)
ymd=y&"年"&m&"月"&d&"日"&h&"点"&mm&"分"&s&"秒"
Posttime = ymd
strSourceFile = Server.MapPath("message.xml")
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
objXML.load(strSourceFile)
Set objRootlist = objXML.documentElement.selectSingleNode("fbook")
if objRootlist.hasChildNodes then
id = Cint(objRootlist.lastchild.firstchild.text)+1
else
id=1
end if
'老康按:vbCr是回车;vbCrLf是换行符,而vbTab是TAB键
brstr=vbCr&vbCrLf&vbTab
XMLnode=brstr&""&brstr & _
""&id&""&brstr & _
""&username&""&brstr & _
""&Posttime&""&brstr & _
""&text&""&brstr & _
"老康暂无回复!"&brstr & _
""&chr(13)
set objXML2=Server.CreateObject("Microsoft.XMLDOM")
objXML2.async = false
objXML2.loadXML(XMLnode)
set rootNewNode=objXML2.documentElement
objRootlist.appendChild(rootNewNode)
objXML.save(strSourceFile)
Response.Write "&load_txt="&username
set objXML=nothing
set objXML2=nothing
end if
%>
这段ASP,看似复杂,其实本例加了一点点“花头”,比如:
开始一大段只是为你的数据项添加一个精确到秒的留言当时时间,
接下来有一大段是为了格式化你的XML数据库,让信息树左端自动加上数个“Tab”键值,相当好看,更主要的是,为你日后的人工编辑带来方便,否则,数据会混在一处。
格式化后的效果如下图所示:
除此之外,就是先从 Flash那里获取用户名及留言内容二个信息,装入XML文件,再添加XML节点,存回,对象清空。
第3步、初创数据库,见到数据库别怕,本例的数据库用最简单的文本格式!
打开【记事本】,本数据库需要起码一个初始字段,以后你的ASP水平提高后,完全可创建一个文档!
拷贝,并保存为“message.xml”文件,保存在以上同一目录。
<?xml version="1.0" encoding="gb2312"?>
<xml>
<fbook>
<item>
<id>1</id>
<username>我是第1位</username>
<Posttime>2005年10月29日10点49分52秒</Posttime>
<text>看了你的留言薄,发现还是空的。</text>
<lk>本人暂无回复</lk>
</item>
</fbook>
</xml>
谢谢你陪伴我这么多时间,该做的事全做了,现在你离自己第一个留言板好近!但愿测试成功!
大家可以提问题,千万别邮寄你的练习文件,我可没时间看哦。
可能还有不少问题!
IIS怎么装,在IIS中如何测试上面的结果,等等,具体问题具体说吧。
最后说说如何把本例移植到 AS3 的问题......
1、上面的二个“输入文本对象”在制作时用的是“变量名”,而 AS3 已经不支持这种做法,就得改成用实例名访问,比如:
xxxxx.Text
2、上述的变量定义在 AS3 中要求显式标明数据类型,这个应该没问题。
3、外部ASP访问问题,在AS3 中应该象下面这样:
btn_messOK按钮事件:
function Btn(evt:MouseEvent):void {
var theurl:String = "add.asp"
var loader:URLLoader=new URLLoader;
var url:URLRequest=new URLRequest(theurl);
loader.load(url);
loader.addEventListener(Event.COMPLETE,loaded);
......
}
function loaded(e:Event) {
......
}
接下去的事情更多了:
添加显示,主人回复,后台编辑,还有界面装饰......
继续玩吧,这可是基础。

在屏障老师的帮助下,又前进了一步。

评论: 1 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags:
节日快乐~