|
今天在整理文件的时候发现到以前写过的电子贺卡... 但目前因为个人的服务器空间有限, 所以就改了一下以减少暂用空间, 在这里就简单的教大家, 但由于我个人是喜欢使用php, 在这里提过的后台例子也是使用php... 有兴趣的朋友就以自己喜欢的后台来编写吧 还是先来看個簡單的例子吧 : http://www.super-tomato.com/Ecard/ 首先, 大家先制作出自己的贺卡, 然后分成两个文件... 一个是寄贺卡人填写的介面, 另外一个就是收到贺卡人所观看的部分 那么就先来弄填写贺卡的部分吧, 在场景添加输入文本和按钮之后就在第一帧输入:
post.onPress = function() { //按钮按下所触发的事件 if (receiver.text.length<2 || email.text.length<10 || sender.text.length<2 || subject.text.length<2 || context.text.length<10) { //依照个人喜好判断输入文本的文字长度 status.htmlText = "<font color=''''''''#FF3300''''''''><b>错误 : 请输入所有空格</b></font>"; //达不到长度就显示错误的讯息 } else { loader = new LoadVars(); //使用LoadVars传递资料到后台 loader.receiver = escape(receiver.text); //使用escape转换成2字节的16进制编码 loader.email = email.text; //email没中文字所以不必 loader.sender = escape(sender.text); loader.subject = escape(subject.text); loader.context = escape(context.text); loader.onLoad = function(success) { //连接到后台 if (success) { //成功接收到后台传回来的讯息 if (loader.result) { //如果后台传递的讯息为true gotoAndStop("success"); //跳到成功传递的标签去 } else { //如果传递回来的讯息为false status.htmlText = "<font color=''''''''#FF3300''''''''><b>错误 : 请再尝试</b></font>"; } } delete loader; //删除LoadVars以免占用资源 }; loader.sendAndLoad("send.php", loader, "POST"); //使用sendAndLoad传送和接收资料 gotoAndStop("sending"); //跳到传送的标签 } }; stop(); 弄好寄件者的Flash部分, 那么接下来就到后台寄出电子邮件的部分了
<? $Today = date("Y-m-d"); //取得今天的日期 $title = "您收到一份来自 $sender 的贺卡"; //在收件者信箱中看到的主题 $Message = "$receiver,<br><br>$Sender 于 $Today 寄了份贺卡给您. <br>请点以下的连接观看贺卡:<br><br> <a href=\http://www.super-tomato.com/Ecard/view.php?Subject=$subject&Context=$context&Receiver=$receiver&Sender=$sender>$Sender 的贺卡哦</a>"; //信件内容, 包括观看的网址(当中附加变量传递资料), 不使用资料库储存的关键就是这里了 if(mail($receiver." <".$email.">",$title, $Message, "From: Super-Tomato <support@super-tomato>\nMIME-Version: 1.0\nContent-Type: text/html; charset=\"iso-8859-1\"\n")) { //使用PHP的mail()函数判断是否寄出邮件 print "result=true"; //成功寄出就回传给Flash的值为true } else { print "result=false"; } ?> 接下来就到收件者所连接观看的Flash部分, 在当中制作动态文本(收件者, 发送者, 主题和内容)... 不要设定动态文本的实例名, 改用变量名 (Receiver, Sender, Subject, Context), 再来只要在第一帧使用 System.useCodepage = true; 就可以了 发布这个文件为html之后, 使用记事本修改当中的代码, 如下:
<? $value = "view.swf?Subject=$Subject&Context=$Context&Receiver=$Receiver&Sender=$Sender"; //这里取得传递过来的变量, 然后准备传送到Flash ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>View Ecard</title> </head> <body bgcolor="#ea9800"> <table width="100%" height="100%"><tr><td align="center" valign="middle"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="700" height="420" id="main" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="<? print $value; ?>"> <param name="quality" value="high" /> <param name="bgcolor" value="#ef9c00" /> <embed src="/pic/5/10/0651022123073671.swf" quality="high" bgcolor="#ef9c00" width="700" height="420" name="main" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </td><tr></table> </body> </html> 这样就完成了啊 :)
|