Flash 外部调用

loadVariables()

loadVariablesNum()

用法
loadVariables ("url" , target [, variables])
loadVariablesNum ("url" ,level [, variables])

区别:
太理论的东西我就不讲了,大家都知道FLASH里有层级(level),也有影片剪辑(MC)那么:
·如果你想让FLASH读取到的数据放到某个影片剪辑中,那你就用第一个loadVariables
·如果你想让FLASH读取到的数据放到某个特定的级别,那你就用第二个loadVariablesNum

FLASH4就有的语法,这个函数的功能就是从外部文件(例如文本文件,或由 CGI 脚本、Active Server Page (ASP)、PHP 或 Perl 脚本生成的文本)中读取数据,并设置目标影片剪辑中变量的值。此动作还可用于使用新值更新活动 SWF 文件中的变量。

举例说明:

1、我们先准备一个 TXT记事本。在里面写以下内容:

t_name=tommyheng&t_age=25岁&t_from=辽宁沈阳

解释:上面的文本内容我定义了3个变量 t_name  t_age  t_from 并且分别让给他们赋予了一个值。而且中间用了 & 分隔开了,不明白的朋友就会问了?用&分开是啥意思?那我就来告诉你,FLASH读取外部数据,当外部数据被程序载入的时候,FLASH会自动根据 & 来 分割数据 也就是说 上面文本里的东西如果被FLASH读取到,FLASH就自动认识它们是3个变量。 

2、我们新建一个FLASH文件,在第一个桢写上:

loadVariables("tommyheng.txt", "_root");
或者(选一个就行,别2个都写哦)
loadVariablesNum("tommyheng.txt", 0);

解释:用2种方法把tommyheng.txt载入到FLASH中。
第一种方法:把文本中的数据载入到FLASH的主场景中(_root 其实就是FLASH的主场景,当然,如果你想把数据放到FLASH中的某个MC中,你可以把它修改成,_root.mc意思就是载入到主场景中的一个叫做MC的影片剪辑)
第二种方法:把文本中的数据载入到FLASH的场景中的第0个级别

然后,在第5桢处插入一个关键空白桢,里面写
trace(t_name);
trace(t_age);
trace(t_from);
stop();
解释:trace()是FLASH里是一个信息输出函数,在制作FLASH的时候,开发者可以通过这个函数,把程序返回的结果(变量)直接输出来观察运行的是否正确等等,但是它只能在FLASH里使用(也就是说按CTRL+ENTER的时候)你才能看到它的功能。
把FLASH和tommyheng文本保存到同一个文件夹中。按CTRL+ENTER直接测试影片
你会发现会输出一下结果:
tommyheng
25
辽宁沈阳
如果你想把这些结果显示到文本框中,而不是输出来看,那可以又2种方式:
第一种方式:直接分配方式

就是直接做3个动态文本框,分别点选每个文本框,在其属性中找到变量,并分别填写:
    t_name    t_age    t_from

第二中方式:自定分配方式

同样建立3个动态文本框,但是不同的是,分别点选每个文本框,在其实例名称处分别填写随便的3个名字 比如:a1 a2 a3
然后在这桢上写如下程序:

a1.text = t_name
a2.text = t_age
a3.text = t_from


这样FLASH就完成了读取外部数据的功能!!!

特别提示:
某些朋友根据我的文件进行测试或者学习,会出现一个问题,那就是英文和数字显示很正常,但是中文就显示不正常变正了乱码(这个是编码问题,很高难的哦)。不要怕,我们有办法对付它,在第一桢处写上
System.useCodepage=true;
这句话的意思就是让FLASH认识中文(嘿嘿),按照理论上讲就是让FLASH使用运行播放器的操作系统的传统代码页来解释外部文本文件。

本讲结束语:
虽然我只写了FLASH读取文本TXT文件,但是它同样试用其他的格式文件的读取。如果你愿意,你可以把文件的扩展名修改成 .dat  甚至你可以把它修改成 .tommyheng  还有,也可以是ASP了。不过如果想读取ASP 那你必须要会ASP哦。起码把要ASP的输出结果也是t_name=tommyheng&t_age=25岁&t_from=辽宁沈阳
从此我们不难看出,其实FLASH读取什么都无所谓,重要的一点,这个文件输出来的东西要能被FLASH认识 也就是 被 & 分开来的变量格式

LoadVars 类

不要因为下面的文字太多而不看,如果你仔细的看过,如果你对是没有学过程序的朋友,那么看完一下的部分,你就已经迈入了程序海洋的一步……

说明

LoadVars 类是 loadVariables() 函数的替代方法,用于在 Flash 应用程序和服务器之间传输变量。

用法: new LoadVars();

几句废话:可能有些朋友程序基础很差,一看到new LoadVars();就糊涂了。觉得很不直观,不知道它是做什么的。那我来解释几句“这个东西是传说中的对象。什么叫做对象呢?举个例子,它好比是一个盒子。不同的对象就像不同的颜色和属性的盒子,每个盒子里有每个盒子的特点,它能做某些只有它才能完成的特定工作,而且它还能帮你放很多东西在里面。我们目前用的这个new LoadVars();就是专门操作外部数据的盒子,他能加载、发送、装载数据。所以我们可以通过这个对象进行加载、发送、装载数据,并且可以到这个对象中去得到我们所需要的数据!

 

举例说明:

1、我们先准备一个 TXT记事本。在里面写以下内容(tommyheng.txt):

t_name=tommyheng&t_age=25岁&t_from=辽宁沈阳

解释:上面的文本内容我定义了3个变量 t_name  t_age  t_from 并且分别让给他们赋予了一个值。而且中间用了 & 分隔开了,不明白的朋友就会问了?用&分开是啥意思?那我就来告诉你,FLASH读取外部数据,当外部数据被程序载入的时候,FLASH会自动根据 & 来 分割数据 也就是说 上面文本里的东西如果被FLASH读取到,FLASH就自动认识它们是3个变量。 

2、我们新建一个FLASH文件,在第一个桢写上:

举例说明:

1、我们先准备一个 TXT记事本。在里面写以下内容(tommyheng.txt):

t_name=tommyheng&t_age=25岁&t_from=辽宁沈阳

解释:上面的文本内容我定义了3个变量 t_name  t_age  t_from 并且分别让给他们赋予了一个值。而且中间用了 & 分隔开了,不明白的朋友就会问了?用&分开是啥意思?那我就来告诉你,FLASH读取外部数据,当外部数据被程序载入的时候,FLASH会自动根据 & 来 分割数据 也就是说 上面文本里的东西如果被FLASH读取到,FLASH就自动认识它们是3个变量。 

2、我们新建一个FLASH文件,在第一个桢写上:

System.useCodepage = true;
//防止中文出现乱码
var myload = new LoadVars();
//var 在FLASH的程序中用于声明变量
//这里 我们声明了一个加做myload的数据类对象
//它可以用来发送、接收、装载、处理数据。
myload.onLoad = function(success) {
//介绍一下这里
//onLoad是LoadVars()下的一个事件处理函数,它的作用是当 LoadVars.load() 或
// LoadVars.sendAndLoad() 操作结束时调用。如果该操作成功,my_lv 将填充为
//该操作所下载的变量,而这些变量将在调用此处理函数时变为可用。
//也就是说:这个函数的功能是在载入数据文件后,可以通过这个函数,将数据
//文件中的所有数据放入对象中,这样可以让我们随时使用
//参数success 该参数指示加载操作是成功完成 (true) 还是以失败结束 (false)。
//(如果我们成功的载入了数据文件,那么它就返回一个true值,代表成功,
//反之,就返回一个false值,代表栽入失败。失败的原因可能是因为数据文件
//tommyheng.txt文件不存在或者路径错误,如果你载入的是ASP等文件,失败
//的原因可能是网络错误)

 if (success) {
//这里就用if判断一下success返回的是true还是false
//如返回的值是true说明我们载入文件成功
//到此,myload对象已经把tommyheng.txt文件载入到对象里
//下面我们就可以对其中的数据任意的宰割了!挖哈哈……

  trace("载入成功!");
  trace(myload.t_name)
  trace(myload.t_age)
  trace(myload.t_from)
//用trace把我们刚刚的实验结果显示出来,看看我们实验结果
  a1.text = myload.t_name
  a2.text = myload.t_age
  a3.text = myload.t_from
//把数据分别分配到场景中a1  a2  a3这3个动态文本框中显示出来
 } else {
  trace("载入失败!");
//反之,如返回的值是false说明我们载入文件失败了!555
//gotoAndStop("shibai")
//如果失败,你可以让程序跳到一个提前设计好的桢,这里显示信息载入失败信息
 }
};

myload.load("tommyheng.txt")
//用我们的对象去载入数据文件
//=====================================================================

小结:

至此,一个简单的,用对象载入数据的例子我就介绍完了。至于用对象载入数据的优点上面的程序至少可以说明,我们可以判断数据是否真正被载入了,而这个只不过是个读取载入数据的部分而已,他只不过是loadvars对象的一个小功能而已哦!!!

下面开始讲如何用FLASH对外发送数据

以下内容我们开始采用ASP程序做数据文件
(因为txt文本格式的文件不可能实现接收数据的功能,它最多只能被FLASH读取和载入而已)

其实,用FLASH发送数据给ASP等这样的程序有很多!有很多FLASH的计数器,留言本,游戏,等等大家都是见过的。以前我们不懂,觉得它很高难,那么通过我们下面的讲解,你就不会觉得这些东西那么神秘了!

LoadVars.send()

用这个东西就可以实现了。它怎么用呢?我们继续举例子说明它的实现方法!!!

代码如下:


FLASH:
先建立一个名字为btn的按纽,
然后在场景中分别建立3个输入性文本框,名字分别为  t_name   t_age   t_from
然后在桢上写如下语句:

mybtn.onRelease = function() {
 var my_send = new LoadVars();

 my_send.t_name = t_name.text;
 my_send.t_age = t_age.text;
 my_send.t_from = t_from.text;
//上面3行是要发送的数据

 my_send.send("http://10.16.0.4/flash/send.asp", "_self","post");
};

ASP代码:
<%
set conn=server.CreateObject ("adodb.connection")
dbpath=server.MapPath ("db1.mdb")
‘Response.Write dbpath
connstr="Driver={Microsoft Access Driver (*.mdb)};dbq="&dbpath
conn.Open connstr

dim t_name, t_age, t_from
‘读FLASH传递过来的数据
t_name=request.form("t_name")
t_age=request.form("t_age")
t_from=request.form("t_from")

‘写FLASH传递过来的数据
response.Write ("<li>t_name="& t_name)
response.Write ("<li>t_age="& t_age)
response.Write ("<li>t_from="& t_from)
response.Write ("<li>mystr="& mystr)

‘写入数据库

set rs=server.CreateObject ("adodb.recordset")
sql="insert into usertab(t_name,t_age,t_from)values(‘"&t_name&"’,'"&t_age&"’,'"&t_from&"’)"
rs.open sql,conn,3,3

%>
这样 就把FLASH里文本框中的数据发送到ASP中 并且ASP写入到数据库中了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值