flash与影片通讯

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:39:58
不知道出了什么问题 在本机调试模式下运行还没问题 但是 上传到网上就不可以了 希望高手帮助:)

//创建一个 NetConnection 对象
var nc:NetConnection = new NetConnection();
//创建一个本地流连接
nc.connect(null);
//创建一个 NetStream 对象
var ns:NetStream = new NetStream(nc);
//写一个播放函数playflv()
function playflv(flv) {
//参数flv是要播放的flv视频地址
//trace(flv);//测试用
// 将 NetStream 视频输入信号附加到 Video 对象,即视频元件yp_mc
yp_mc.attachVideo(ns);
// 设置缓冲时间,单位秒,下面设置3秒即可
ns.setBufferTime(3);
// 开始播放 FLV 文件
ns.play(flv);
}
//点击开始播放按钮开始播放
_root.createTextField("url");
_root.createTextField("contentId");
url.autoSize = true;
url.border = true;
url._visible = true;
flv._visible = true;
flv.text = (url+"&contentId="+contentId);
var sendval:LoadVars = new LoadVars();
var getval:LoadVars = new LoadVars();
sendval.sendAndLoad(flv.text, getval, "post");
getval.onLoad = function(success) {

loadVariables这个指令并不陌生,在MX版本之前就已经存在了,而为何在MX版本开始要增加多一个LoadVars事件呢?
我想很多人都在使用loadVariables吧,简单而且不用像LoadVars那样麻烦还要写一大堆,这也是这两个时间不同的关键所在。
对于不懂的朋友,那么我们先来建立一个外部文件,然后再看看loadVariables和LoadVars的写法:

external.txt

myText=这是外部文件

那么先来看看loadVariables的写法:

loadVariables("external.txt",_level0);
btn.onRelease = function() {
trace(myText); //获得的输出结果是 “这是外部文件”
}

这样就可以很顺利的取得外部文件的变量myText的值了,但是如果我们不是要在按钮事件发生之后才取得变量呢?
我们也来试试看把之前的代码改成

loadVariables("external.txt",_level0);
trace(myText); //获得的输出结果是 “undefined”

为何会不一样呢? 原因很简单,因为要取得外部变量之前,我们必须先载入该文件完毕之后才能够取得当中的变量。简单来说就像你是用loadMovie载入图片,在此图片还没有载入完毕之前你是无法知道图片的宽度,高度,颜色等资料。为了证明出这样的结果,我们再把之前的代码修改一下

System.useCodepage = true;
loadVariables("external.txt", _level0);

onEnterFrame = function() {
for(var i in _level0) {
if( i == "myText") {
delete this.onEnterFrame;
}