热门资讯 点击: 2013-04-15
可关闭对联式广告源码
public string[] AD_duilianguangao(string width,string height, string fileurl,string link)//对联式广告
{
string htmltext = "";
string[] rettxt=new string [2];
htmltext = htmltext + "<div id=\"ad\" align=\"right\" style=\"position:
absolute;top:0px;right:0px;margin:2px;padding:2px;z-index:2000;\"><a href=\"javascript:;\" onclick=\"hidead()\" style=\"color:red;text-decoration:none;font-size:12px;\">关闭 </a></div> <br/> \r\n";
htmltext = htmltext + "<div id=\"adshow\">";
dkhgedu.PlayClass_show pl = new dkhgedu.PlayClass_show();
string listxt = pl.Play(fileurl , Convert .ToInt16 (width), Convert .ToInt16 (height ), "1", "/flashplayer/flvplayer.swf",link);
htmltext = htmltext + listxt;
htmltext = htmltext + "</div> \r\n";
htmltext = htmltext + "<SCRIPT LANGUAGE=\"JavaScript\"> \r\n";
htmltext = htmltext + "function hidead() \r\n";
htmltext = htmltext + "{ \r\n";
htmltext = htmltext + "document.getElementById(\"ad\").style.display=\"none\"; \r\n"; htmltext = htmltext + "document.getElementById(\"adshow\").style.display=\"none\"; \r\n";
htmltext = htmltext + "document.getElementById(\"ad1\").style.display=\"none\"; \r\n"; htmltext = htmltext + "document.getElementById(\"adshow1\").style.display=\"none\"; \r\n";
htmltext = htmltext + "} \r\n";
htmltext = htmltext + "</SCRIPT> \r\n";
rettxt[0] = htmltext;
htmltext = "";
htmltext = htmltext + "<div id=\"ad1\" align=\"right\" style=\"position:
absolute;top:0px;right:0px;margin:2px;padding:2px;z-index:2000;\"><a href=\"javascript:;\"
onclick=\"hidead()\" style=\"color:red;text-decoration:none;font-size:12px;\">关闭 </a></div> <br/> \r\n";
htmltext = htmltext + "<div id=\"adshow1\">";
listxt = pl.Play(fileurl, Convert.ToInt16(width), Convert.ToInt16(height), "1", "/flashplayer/flvplayer.swf", link);
htmltext = htmltext + listxt;
htmltext = htmltext + "</div> \r\n";
rettxt[1] = htmltext;
return rettxt;
}
Flash实例:Flash+asp扫描文件夹展示图片[千图网]
Flash实例:Flash+asp扫描文件夹展示图片
思路:
用ASP的FSO(这个思路是刚才一位朋友在回贴中提到的,所以我才想起要做这个东东,呵呵)对象来扫描同文件夹下的JPG图片,并输出文件名。这里用ASP输出XML格式让FLASH加载,虽然不太喜欢XML,但大家都觉得它规范一些,就输出它吧。演示效果下载后再看吧!
我的文件夹中只放了9个图片,但无论添加还是减少都直接上传或者删除就行了,不需要去改FLASH也不需要修改ASP。费话少说,代码+注释+源文件如下(IIS环境测试才有效):
FLASH中的代码:
importflash.filters.BlurFilter;importflash.filters.DropShadowFilter;////============初始化
===========varb_filters:BlurFilter=newBlurFilter(5,5,1);vard_filters:DropShadowFilter=newDropShadowFilter(5,45,0,80,10,10);varn:Number=newNumber();varurl_array=newArray();//这里是设置SWF与ASP的相对路径,虽然可以在ASP中比较得出,但感觉没有必要varpath_str:String= images/ functiongo_func(){if(n url_array.length-1){ n++;
load_func();}else{ trace( 加载完成! //============MCL类
===========var_mcl:MovieClipLoader=newMovieClipLoader();this.onLoadInit=function(_mc:MovieClip){_mc._txt.removeTextField();_mc._width=80;_mc._height=80;_mc.filters=[b_filters,d_filters];//============这里设置鼠标动作
===========_mc.onRollOver=function(){ this.filters=null;_mc.onRollOut=function(){ this.filters=[b_filters,d_filters];go_func();//如果没有下面的代码,就会一个加载出错,导致后面的都不能加载,用这个可以出错时继续向下加载,源文件中我故意少了一个图片,让它出错
this.onLoadError=function(_mc:MovieClip){_mc.createTextField( _txt ,200,20,10,60,30);_mc._txt.textColor=0xff0000;_mc._txt.text= 加载失败! go_func();//=========加载进度显示
==============this.onLoadProgress=function(_mc:MovieClip,bytesLoaded:Number,bytesTotal:Number){_mc.createTextField( _txt ,200,20,10,60,30);_mc._txt.textColor=0xff0000;_mc._txt.text=Math.floor((bytesLoaded/bytesTotal*10000)/100)+ % _mcl.addListener(this);//=================load函数========functionload_func(){this.createEmptyMovieClip( pic_mc +n,n+100);//如果要改成竖向加载,只需把下面的_x_y换一下就行了
this[ pic_mc +n]._y=30+Math.floor(n/3)*100;this[ pic_mc
+n]._x=100+n%3*100;_mcl.loadClip(path_str+url_array[n],this[ pic_mc +n]);//===========XML文件加载
=========varurl_xml=newXML();url_xml.ignoreWhite=true;url_xml.onLoad=function(suc){if(suc){ for(vard:Number=0;d
this.firstChild.childNodes.length;d++){ url_array.push(this.firstChild.childNodes[d].firstChild.nodeValue); load_func();}else{ trace( XML文件加载失败! url_xml.load(path_str+ showjpg.asp
ASP:
%@LANGUAGE= VBSCRIPT CODEPAGE= 65001 %
DimthisPath,FSO,fileItem,allFolderthisPath=Server.MapPath(Request.ServerVariables( SCRIPT_NAME )) 得到ASP文件的路径
SetFSO=createobject( scripting.filesystemobject ) 创建FSO对像
SetallFolder=FSO.GetFile(thisPath).parentfolder.files 得到ASP所在目录的父级对像,它就包括了这个ASP和我们放的图片
Response.write( ?xmlversion= 1.0 encoding= utf-8 ? ) 开始输出
XMLResponse.ContentType= text/XML
Response.Write( path )ForEachfileItemInallFolder 想当于FLASH中的遍历,遍历整个对像中的元素 Iflcase(right(fileItem.name,4))= .jpg Then 如果后缀是JPG Response.Write( url +fileItem.name+ /url ) 就把它的文件名输出为XML的一个新节点 EndIf Next Response.Write( /path )Response.End()% 本文示例代码或素材下载
学好版面设计的小窍门
1、版面设计中要有理由对齐
2、版面设计中要做些精致的小零件
3、版面设计中的色块运用,往往选取图形中的颜色
4、版面设计中的统一、均衡、韵律
5、版面设计中的视觉导向、视觉中心根据版面中的图形确定
6、版面设计中要有隐形矩形框、隐形对齐线条
7、版面设计中敢于留白,整个版面中要通风,利于让人行走。
8、注意人们看图习惯于从上至下,从走至右。
9、版面中的字体最好少于三种,大小起码要三种,背景颜色最好少于三种。
10、当图片多了就把他们格起来。
11、有的时候可以违反以上所有规矩,要夸张、要疯、字要大的出奇,版面乱成稻草堆,这样也是一种好的版面设计。
12、扎堆是个不错的主意。
13、不要被一眼看穿。耐看。
20个怎么学好广告图形创意的绝妙方法
1、丰富资料库,压缩资料库为经典资料库,提高自身阅历。
2、善于联想,善于拟人,比喻
3、以另类的眼光看成功的广告,提取优秀广告作品的基本图形创意并做记录。总结其中思路,及创作方法。
4、对图形有审美能力,不放过具有象征意义、文化意义、积极意义的图形。并能归类整理。
5、多做移花接木的训练(如库索),能把不同类甚至无法归类的物体进行整体化统一化系统化。如用班级同学名字创作故事。
6、联想图形不能轻易放弃对大脑的搜索,先从生活经验分类联想如从餐饮用品、起居用品,办公用品、文化用品搜索相关物体进行联想,然后跳跃思维联想一会儿想到了北极的埃斯积木人,一会儿想到七巧板中的董浩叔叔,一会儿又想到了宿舍楼管员他儿子、象征,接着对联想到的物体进行拐弯联想如联想火的图形,可能会先联想到森林大火,但森林大火怎么引起的?画一个人家自助游在大森林落下的白酒瓶。有经验的人看到森林中枯黄的叶子上躺着一个灌着雨水的白酒瓶,他们会意识到大火的来临。
7、就象李敖说的,他为什么会比人家聪明,他说他善于用故事情节,用图形化的东西来表达文字,表达一个概念。如,我们做市场调查数据的说明往往用柱状图或饼图来表达是一样道理。
8、多注意观察,特别是细节的问题,看到人家看不到的东西。
9、大家多多交流,以头脑风暴的形式来想图形创意。多看看同学的作品,取长补短,不要自命清高。
10、关注成功广告或获奖广告的每一个细节,如背景色及制作背景的是手法,版面排版,字体设计,文案与图形的搭配技巧,色彩运用等细节。
11、兴趣提高很重要。兴趣是学好任何技能的第一老师。
12、多看看有关于美术审美方面的书籍,提高自己的眼界。让自己的审美尺度保持在最前沿。
13、随时把梦中、路上、马桶上等的突然的灵感记录在手机,或者随身携带的小型笔记本上。防止灵感流失。
14、学好广告的基础,把自己在QQ上闲聊的时间用来恶补:素描速写、色彩原理、色彩心理,版面设计等非常基础的东西。
15、到设计帝国、CNAD(中国广告网) DOLCN(中国设计在线) 333CN(中国设计之窗) BULEIDEA(蓝色理想) HXSD (火星时代) 等论坛BBS上寻找前辈,通过
QQ、MSN、EMAIL等工具,通过各种手段(包括甜蜜的称呼,虔诚的崇拜)结交前辈。通过前辈不仅能搜刮到他工作中常用的图形,还能学到他们在社会上打拼的实战经验,以使自己少走弯路。
16、问责常理,用独特的思维、眼光看待这个是世界,人家都认可的东西要无理唱反调,从而发现人家发现不到的图形,创意。
17、多做实际案例,可以先临摹、接着对临摹的东西进行再创作,最后进行完全创新地创作。
18、用商人的眼光、客户的角度、评委的要求对自己作品进行批判批判再批判。
19、爱就一个字,爱上广告,爱上图形创意很重要。
FLASH留言板教程
FLASH留言板教程
-------------------------------------------------------------------------------------------------------------------- 首先感谢大家下载和使用我的留言板!同时希望和所有爱好FLASH朋友一起进步,一起享受成功! Name: 九五之尊
OICQ: 55346752
Email: ljg998@gmail.com
Homepage:
-------------------------------------------------------------------------------------------------------------------------------------
自从在闪吧发布我的第一个FLASH留言板,受到许多朋友的支持,但是因为一直忙于工作,今天终于抽出时间写写关于制作FLASH留言板的心得!
FLASH留言板,从我02年开始学习FLASH时,网上就出现了许多不同层次的教程,对于一个初学者来说,我们总是希望向学数学一样,先告诉我们1+1=2,我们才会知道2+2=4。同样,学FLASH,得先学理论,才能够作出精美和功能强大的FLASH作品。
基于网页的留言板,我们已经见得很多,一个完整的留言板包括三个部分:
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(){asp对联代码}.
{
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中写上 <%@ language=”VBScript” codePage=”936”%>
FLASH和XML的交互
应该来说,用XML和FLASH来交换数据,还是不错的选择,首先,XML可以根据我们的需要,很清晰地定义其结构,FLASH也可以很容易去解释信息。
例3:
myxml=new XML(); //创建一个XML新对象
myxml.ignoreWhite=true; //空白忽略
myxml.load(“music.xml”); //加载同目录下的music.xml文件{asp对联代码}.
myxml.onLoad=function(success)
{
if(success)
{
ReadXML();
trace(“加载成功”);
}else
{{asp对联代码}.
trace(“加载失败”);
}
}
以上的代码就能够检测xml是不是加载到FLASH中去了。
以下是个简单的XML文件
------------------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0"?>
<music>
<list name=”song1” url=”mp3/01.mp3” />
<list name=”song2” url=”mp3/02.mp3” />
<list name=”song3” url=”mp3/03.mp3” />{asp对联代码}.
</music>
XML加载进来后,我们需要做的是去解析和提取数据,为我们所用。
以上ReadXML()函数就用来读数据。
Function ReadXML()
{
myArray=myxml.firstChild.childNodes; //把myxml的第一个子结点所有的数据以数组的方式给myArray totalNumber= myArray.length; //
for( i=0; i< totalNumber ; i++ )
{
arr_1= myArray[i].attributes.name;
arr_2=myArray[i].attributes.url;
}
}
现在,我们可以得到的结果是,在数组arr_1中保存了所有歌曲的名字,在数组arr_2中保存了所有歌曲的路径,我们就可以使用loadSound()等方法制作一个自己的播放器了!
XML与ASP
Xml和ASP各有各的优势,xml数据结构很清楚,但是没有ASP灵活,而且还可以查询和修改数据库,所以想一想,如果用ASP来动态生成xml,那么我们就可以两全其美了!
这里需要一点ASP知识!
以下一段实现ASP生成指定的XML。
--------------------------------------------------------------------------------------------------------------------------------------- <%
response.ContentType="text/xml"
if request.QueryString("Page")<>"" then
Page=Cint(request.QueryString("Page"))
else
Page=1
end if
pgsz=5
%><?xml version="1.0" encoding="gb2312"?><Message>
<% DataBaseName="Manage/Message/Message.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(DataBaseName) set rs=server.CreateObject("Adodb.recordset")
rs.open "Select * from Message order by addtime desc",conn,1,1
if not rs.eof then
rs.pagesize=pgsz
Rs.Absolutepage=Page
%>
<Content Recordcount="<%=rs.recordcount%>" PageSize="<%=pgsz%>" Pagecount="<%=rs.Pagecount%>" CurPage="<%=Page%>">
<%
i=0
do while not rs.eof and i<pgsz
%>
<Item Name="<%=rs("Name")%>" Sex="<%=rs("Sex")%>" Email="<%=rs("Email")%>" Time="<%=year(rs("Addtime"))%>-<%=month(rs("Addtime"))%>-<%=day(rs("Addtime"))%>"
Homepage="<%=rs("Homepage")%>" Title="<%=rs("Title")%>" Content="<%=rs("Content")%>" Reply="<%=rs("Reply")%>"/>
<%
i=i+1
rs.movenext
loop
%></Content>
<%
end if
rs.close
set rs=nothing
Conn.Close
set Conn=Nothing
%></Message>
[备注]
我们常会遇到,XML中如果有中文,将会成乱码,所以只要在flash中写上
System.useCodePage=true,就OK了!
---------------------------------------------------------------------------------------------------------------------------------------
以上只是些基础知识,下面具体讲解留言板的制作和关键:
是我的第一个版本的留言板,原理是把所有的数据用ASP提取出来,然后由FLASH来判断,使用split方法,把数据存到数组里去,需要时,再去取,这样有一个弱点,就是使用起来,分页时,会把不需要的数据也调用了进来,不是很科学!
接下来讲的是改进后的版本。原理是用ASP动态生成XML,当分页时,点下一页时,继续访问ASP,从新生成第二页的XML,都由FLASH访问XML,来加载数据,由ASP访问数据库,读和写数据。
V2.0 版本中FLASH原文件共有3个,leave.swf 只是个容器,把write.swf和leave.swf 加载到里面去。 write.swf为提交数据,read.swf 为读数据.
---------------------------------------------------------------------------------------------------------------------------------------- leave.swf :
两个按钮 , 一个 查看留言 btn1 一个我要留言.btn2
btn1: _parent.mess.loadMovie("read.swf");
btn2: _parent.mess.loadMovie("write.swf");
其中还有, 上一页 和下一页 以及一个下拉条
主要代码:
xiala.onEnterFrame = function() { //下拉的位置,控制着留言内容mess的位置
if (ggg == 1) {
mess._y = 28;
} else {
y = xiala.btn._y;
yy = y/dist1;
mess._y = b_2*yy+30;
}
};
----------------------------------------------------------------------------------------------------------------------------------------
write.swf
flash留言板
FLASH留言板的详细教程
2007-12-07 08:47
基于网页的留言板,我们已经见得很多,一个完整的留言板包括三个部分:
1. 显示留言的页面(显示朋友们给我的留言)
2. 填写留言的页面 (向后台提交信息)
3. 数据库(用于保存后台信息)
关于如何制作基于网页的留言板,不去多作解释,可以参考相关资料。
就目前而言,FLASH是不可以直接操作象ACCESS, SQL, Mysql 等数据库的,他只能依靠ASP ,PHP ,JSP等其他的语言来实现数据的提交和查询。同时,FLASH还可以和XML对接,实现一些数据的操作。
fficeffice" />
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中写上
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();
trace(“加载成功”);
}else
{
trace(“加载失败”);
}
}
以上的代码就能够检测xml是不是加载到FLASH中去了。
以下是个简单的XML文件
----------------------------------------------------------------------------------------------------------------------------
name=”song1” url=”mp3/01.mp3” />
name=”song2” url=”mp3/02.mp3” />
name=”song3” url=”mp3/03.mp3” />
XML加载进来后,我们需要做的是去解析和提取数据,为我们所用。
以上ReadXML()函数就用来读数据。{asp对联代码}.
Function ReadXML()
{
myArray=myxml.firstChild.childNodes; //把myxml的第一个子结点所有的数据以数组的方式给myArray
totalNumber= myArray.length; //
for( i=0; i< totalNumber ; i++ )
{
arr_1= myArray.attributes.name;
arr_2=myArray.attributes.url;
}
}
现在,我们可以得到的结果是,在数组arr_1中保存了所有歌曲的名字,在数组arr_2中保存了所有歌曲的路径,我们就可以使用loadSound()等方法制作一个自己的播放器了!
XML与ASP
Xml和ASP各有各的优势,xml数据结构很清楚,但是没有ASP灵活,而且还可以查询和修改数据库,所以想一想,如果用ASP来动态生成xml,那么我们就可以两全其美了! 这里需要一点ASP知识!
以下一段实现ASP生成指定的XML。
-----------------------------------------------------------------------------------------------------------------------------
" Sex="" Email="" Time="--" Homepage="" Title="" Content=""
Reply=""/>
[备注]
我们常会遇到,XML中如果有中文,将会成乱码,所以只要在flash中写上
System.useCodePage=true,就OK了!
--------------------------------------------------------------------------------------------------------------------------
以上只是些基础知识,下面具体讲解留言板的制作和关键:
/bbs/viewThread.php?tid=283509
是我的第一个版本的留言板,原理是把所有的数据用ASP提取出来,然后由FLASH来判断,使用split方法,把数据存到数组里去,需要时,再去取,这样有一个弱点,就是使用起来,分页时,会把不需要的数据也调用了进来,不是很科学!
接下来讲的是改进后的版本。原理是用ASP动态生成XML,当分页时,点下一页时,继续访问ASP,从新生成第二页的XML,都由FLASH访问XML,来加载数据,由ASP访问数据库,读和写数据。
V2.0 版本中FLASH原文件共有3个,leave.swf 只是个容器,把write.swf和leave.swf 加载到里面去。
write.swf为提交数据,read.swf 为读数据.
----------------------------------------------------------------------------------------------------------------------------------------
leave.swf :
两个按钮 , 一个 查看留言 btn1 一个我要留言.btn2
btn1: _parent.mess.loadMovie("read.swf");
btn2: _parent.mess.loadMovie("write.swf");
其中还有, 上一页 和下一页 以及一个下拉条
主要代码:
xiala.onEnterFrame = function() { //下拉的位置,控制着留言内容mess的位置
if (ggg == 1) {
mess._y = 28;
} else {
y = xiala.btn._y;
yy = y/dist1;
mess._y = b_2*yy+30;
}
};
-----------------------------------------------------------------------------------------------------------------------------
write.swf
(图片见word文档)
主要代码:
System.useCodepage = true; //支持中文编码
this_mc._visible = false; // this_mc 为一个填写错误提示的影片剪辑 this_sex = "先生"; //默认sex为先生
function clean() { // 点取消按钮时,清空所有数据
this_name.text = "";
this_homepage.text = "";
this_email.text = "";
this_title.text = "";
this_content.text = "";
}
function emailcheck(str) { //检测email填写是否正确,判断是否有@ 和 点 at = false;
dot = false;
for (i=0; i
if (str.charAt(i) == ’@’) {
at = true;
}
if (str.charAt(i) == ’.’) {
dot = true;
}
}
return (at && dot);
}
clean_btn.onRelease = function() {
clean();
};
send_btn.onRelease = function() { //提交按狃代码
if (this_name.text == "") {
this_mc._visible = true;
this_mc.tishi.text = "姓名不能为空!";
} else if (emailcheck(this_email.text) == false) {
this_mc._visible = true;
this_mc.tishi.text = "请正确填写邮件!";
} else if (this_title.text == "") {
this_mc._visible = true;
this_mc.tishi.text = "主题不能为空!";
} else if (this_content.text == "") {
this_mc._visible = true;