&#106avascript与Flash 8.0通信之打印实战篇

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在发贴之前,我希望大家能给我提出宝贵的意见和建议,如有不对的地方,情给予指出; 同时我要感谢闪吧、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="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"&nb

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航