|
最近为银行作一个凭证打印,应用到了javaScript与flash 8.0的通讯,所以我将这段代码贴出来。起初计划纯粹用javascrip作打印,后来想到要更好的升级(原因就不说啦),所以就用javaScript与flash 8.0来作。
先看界面:
 录入数据,点击确定,执行函数,数据通过javascrip脚本传递到.swf文件中。界面如:
 代码:
<SCRIPT LANGUAGE=JavaScript> //alert("lll") <!-- function sgxg(args){ //alert("lll") vv=new Array() ss=new Array() for(i=0;i<3;i++) { vv[i]=i; } for(k=3;k<6;k++) { ss[k]=k; } ss.shift(); ss.shift(); ss.shift(); ss[2]=12; op=document.formDate //alert(op.kemu.value) var kemu =op.kemu.value; var dates =op.dates.value; var account =op.account.value; var content =op.content.value; window.document.myFlash.SetVariable("_level0.datas.kemu.text", kemu); //============================================ time=dates.split("-"); window.document.myFlash.SetVariable("_level0.datas.years.text", time[0]); window.document.myFlash.SetVariable("_level0.datas.months.text", time[1]); window.document.myFlash.SetVariable("_level0.datas.days.text", time[2]); //============================================== window.document.myFlash.SetVariable("_level0.datas.account.text", account); window.document.myFlash.SetVariable("_level0.datas.content_start0.text", vv.join("-")); window.document.myFlash.SetVariable("_level0.datas.content_end0.text", ss.join("-")); window.document.myFlash.TCallFrame("_level0.datas", 0); } //--> </SCRIPT>
其中SetVariable、TCallFrame是javaScrip控制flash的命令。SetVariable:是给flash中的变量赋值。(就是将javaScrip中数值赋给.swf)TCallFrame:是执行flash中的actionScript.(主要是执行flash脚本中的打印)下面是flash界面:

其中的数据接收帧脚本:
count = 0; cos1 = content_start0.text; cos2 = content_end0.text; content_start = cos1.split("-"); content_end = cos2.split("-"); for (i=0; i<content_start.length; i++) { count += (content_end[i]-content_start[i]); } this.amount.text = count; //========================= //=========== amounts = new Array(); for (i=0; i<content_start.length; i++) { amounts[i] = String((content_end[i]-content_start[i])).split(""); if (amounts[i].length<10) { middle = new Array(); for (k=0; k<10-amounts[i].length; k++) { middle[k] = 0; } amounts[i] = middle.concat(amounts[i]); amounts[i].push("0"); amounts[i].push("0"); } else { amounts[i].push("0"); amounts[i].push("0"); } } for (s=0; s<amounts.length; s++) { for (u=0; u<12; u++) { this["amount"+s]["values"+u].text = amounts[s][u]; } } //=================================== if (cos1<>undefined) { if (cos1<>"") { for (i=0; i<content_start.length; i++) { this["content_start"+i].text = content_start[i]; } } } if (cos2<>undefined) { if (cos2<>"") { for (i=0; i<content_end.length; i++) { this["content_end"+i].text = content_end[i]; } } }
源代码: flash源码:
点击浏览该文件 php源文件:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Untitled Document</title> </head> <SCRIPT LANGUAGE=JavaScript> //alert("lll") <!-- function sgxg(args){ //alert("lll") vv=new Array() ss=new Array() for(i=0;i<3;i++) { vv[i]=i; } for(k=3;k<6;k++) { ss[k]=k; } ss.shift(); ss.shift(); ss.shift(); ss[2]=12; op=document.formDate //alert(op.kemu.value) var kemu =op.kemu.value; var dates =op.dates.value; var account =op.account.value; var content =op.content.value; window.document.myFlash.SetVariable("_level0.datas.kemu.text", kemu); //============================================ time=dates.split("-"); window.document.myFlash.SetVariable("_level0.datas.years.text", time[0]); window.document.myFlash.SetVariable("_level0.datas.months.text", time[1]); window.document.myFlash.SetVariable("_level0.datas.days.text", time[2]); //============================================== window.document.myFlash.SetVariable("_level0.datas.account.text", account); window.document.myFlash.SetVariable("_level0.datas.content_start0.text", vv.join("-")); window.document.myFlash.SetVariable("_level0.datas.content_end0.text", ss.join("-")); window.document.myFlash.TCallFrame("_level0.datas", 0); /* for(i=0;i<time.length;i++) { alert(time[i]) }*/ } function printDatas() { alert("exe printDates") //op=document.formDate window.document.myFlash.SetVariable("_level0.i", 1); window.document.myFlash.TCallFrame("_level0",0); } //--> </SCRIPT> <body> <p align="center"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0 width="550" height="300" id="myFlash" > <param name="movie" value="bank.swf"> <param name="quality" value="high"> <embed src="bank.swf" quality="high" pluginspage=http://www.macromedia.com/go/getflashplayer type="application/x-shockwave-flash" width="550" height="300" name="myFlash"></embed> </object> </p> <form name="formDate" method="post" action="" > <table width="600" border="0" align="center"> <tr> <td align="right">科目:</td> <td> <input type="text" name="kemu" maxlength="45"></td> <td align="right">日期:</td> <td> <input type="text" name="dates" maxlength="45"></td> </tr> <tr> <td align="right">帐号:</td> <td> <input type="text" name="account" maxlength="45"></td> <td align="right">摘要:</td> <td> <input type="text" name="content" maxlength="45"></td> </tr> <tr> <td colspan="4" align="center"><input type="button" maxlength="45" value="确定" onClick="sgxg(this)"> <input type="button" maxlength="45" value="打印" onClick="printDatas()"></td> </tr> </table> <p> </p> </form> <p> </p> </body> </html>
参考: Play() -------------------------------------------------------- 播放动画 StopPlay()--------------------------------------------------- 停止动画 IsPlaying()--------------------------------------------------- 动画是否正在播放 GotoFrame(frame_number)---------------------------- 跳转到某帧 TotalFrames()---------------------------------------------- 获取动画总帧数 CurrentFrame()-------------------------------------------- 回传当前动画所在帧数-1 Rewind()---------------------------------------------------- 使动画返回第一帧 SetZoomRect(left,top,right,buttom)--------------- 放大指定区域 Zoom(percent)-------------------------------------------- 改变动画大小 Pan(x_position,y_position,unit)----------------------- 使动画在x,y方向上平移 PercentLoaded()------------------------------------------ 返回动画被载入的百分比 LoadMovie(level_number,path)----------------------- 加载动画 TGotoFrame(movie_clip,frame_number)----------- movie_clip跳转到指定帧数 TGotoLabel(movie_clip,label_name)----------------- movie_clip跳转到指定标签 TCurrentFrame(movie_clip)----------------------------- 回传movie_clip当前帧-1 TCurrentLabel(movie_clip)------------------------------ 回传movie_clip当前标签 TPlay(movie_clip)------------------------------------------ 播放movie_clip TStopPlay(movie_clip)----------------------------------- 停止movie_clip的播放 GetVariable(variable_name)---------------------------- 获取变量 SetVariable(variable_name,value)--------------------- 变量赋值 TCallFrame(movie_clip,frame_number)-------------- call指定帧上的action TCallLabel(movie_clip,label)----------------------------- call指定标签上的action TGetProperty(movie_clip,property)------------------ 获取movie_clip的指定属性 TSetProperty(movie_clip,property,number)------- 设置movie_clip的指定属性
|