javascript|打印
在发贴之前,我希望大家能给我提出宝贵的意见和建议,如有不对的地方,情给予指出; 同时我要感谢闪吧、Action Script讨论区的所以版主以及supertomato.因为这里有许多默默无闻的人为大家提供无偿的帮助,我在次作一点小小的贡献,希望能给大家带来一点小小的收获。谢谢!
最近为银行作一个凭证打印,应用到了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="http://www.webjx.com/htmldata/2005-11-21/bank.swf">
<param name="quality" value="high">
<embed src="http://www.webjx.com/htmldata/2005-11-21/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="确定" >
<input type="button" maxlength="45" value="打印" ></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的指定属性