求助一个关于MovieClipLoader与setinterval自动播放图片的问题(已解决)
时间:2011-06-09
来源:互联网
实现效果应该是每隔几秒钟的时间加载一张图片,后加载的图片是一张张淡入显示的。
现在碰到的问题是,总是加载第一张图片,后面的都没加载到,但调试结果显示后面的图片是有加载的,但是动态生成的用于承载图片的MC trace出来居然是undefined,不知这个问题是由什么导致的,代码如下: 源文件见附件
stop();
//执行频率(毫秒)
var ttime:Number;
//设置一个深度值变量
var depth:Number = 1;
//图片索引
var item:Number = -1;
//图片数组长度
var p:Number;
var _b:Boolean = false;
var myinterval:Number;
//创建影片剪辑,及初化图片
var mcLoader:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadInit = function(target:MovieClip) {
//卸载当前显示图片两层以下的装载图片的MC,防止长时间系统资源耗尽
this["load_mc" + (depth - 3)].removeMovieClip();
target._alpha = 0;
//设置加载完成的图片属性
_mc._x = 0;
_mc._y = 0;
_mc._width = 800;
_mc._height = 600;
//调用图片透明度函数
alpha_func(target);
};
mcLoader.addListener(mcListener);
//---解析XML部分---
//建立数组准备存放内容
my_pic = [];
pic_xml = new XML();
pic_xml.ignoreWhite = true;
pic_xml.onLoad = function(success:Boolean) {
if (success) {
//主体拆分部分
mytime = this.childNodes[0].attributes.stoptime;
ttime = mytime * 1000;
mypath = this.childNodes[0].attributes.path;
tmp = this.childNodes[0].childNodes;
for (i = 0; i < tmp.length; i++) {
my_pic.push(mypath + tmp[i].attributes.filename);
}
p = tmp.length;
_b = true;
load_pic();
//加载图片的频率
myinterval = setInterval(load_pic, ttime);
} else {
_b = false;
}
};
pic_xml.load("图片/Img_list.xml");
//加载图片的函数
function load_pic() {
item++;
//与图片数组取模,保证运行到最后一张图后重新指向第一张
item %= p;
//深度值递加
depth++;
_root.createEmptyMovieClip("load_mc" + depth,depth);
//加载外部影片
mcLoader.loadClip(my_pic[item],this["load_mc" + depth]);
trace(this["load_mc" + depth]);
}
//图片透明度函数
function alpha_func(target:MovieClip) {
target._alpha = 10;
target.onEnterFrame = function() {
this._alpha += 10;
this._alpha >= 95 ? delete this.onEnterFrame : Error;
};
}
[ 本帖最后由 kaba47 于 2011-6-9 19:55 编辑 ]
屏保.rar (725.96 KB)
现在碰到的问题是,总是加载第一张图片,后面的都没加载到,但调试结果显示后面的图片是有加载的,但是动态生成的用于承载图片的MC trace出来居然是undefined,不知这个问题是由什么导致的,代码如下: 源文件见附件
stop();
//执行频率(毫秒)
var ttime:Number;
//设置一个深度值变量
var depth:Number = 1;
//图片索引
var item:Number = -1;
//图片数组长度
var p:Number;
var _b:Boolean = false;
var myinterval:Number;
//创建影片剪辑,及初化图片
var mcLoader:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadInit = function(target:MovieClip) {
//卸载当前显示图片两层以下的装载图片的MC,防止长时间系统资源耗尽
this["load_mc" + (depth - 3)].removeMovieClip();
target._alpha = 0;
//设置加载完成的图片属性
_mc._x = 0;
_mc._y = 0;
_mc._width = 800;
_mc._height = 600;
//调用图片透明度函数
alpha_func(target);
};
mcLoader.addListener(mcListener);
//---解析XML部分---
//建立数组准备存放内容
my_pic = [];
pic_xml = new XML();
pic_xml.ignoreWhite = true;
pic_xml.onLoad = function(success:Boolean) {
if (success) {
//主体拆分部分
mytime = this.childNodes[0].attributes.stoptime;
ttime = mytime * 1000;
mypath = this.childNodes[0].attributes.path;
tmp = this.childNodes[0].childNodes;
for (i = 0; i < tmp.length; i++) {
my_pic.push(mypath + tmp[i].attributes.filename);
}
p = tmp.length;
_b = true;
load_pic();
//加载图片的频率
myinterval = setInterval(load_pic, ttime);
} else {
_b = false;
}
};
pic_xml.load("图片/Img_list.xml");
//加载图片的函数
function load_pic() {
item++;
//与图片数组取模,保证运行到最后一张图后重新指向第一张
item %= p;
//深度值递加
depth++;
_root.createEmptyMovieClip("load_mc" + depth,depth);
//加载外部影片
mcLoader.loadClip(my_pic[item],this["load_mc" + depth]);
trace(this["load_mc" + depth]);
}
//图片透明度函数
function alpha_func(target:MovieClip) {
target._alpha = 10;
target.onEnterFrame = function() {
this._alpha += 10;
this._alpha >= 95 ? delete this.onEnterFrame : Error;
};
}
[ 本帖最后由 kaba47 于 2011-6-9 19:55 编辑 ]
附件

2011-6-9 18:05, 下载次数: 0
作者: kaba47 发布时间: 2011-06-09
晕,我已经找到原因了,是路径出问题了。。。。。this改root即可
//加载外部影片
mcLoader.loadClip(my_pic[item],_root["load_mc" + depth]);

//加载外部影片
mcLoader.loadClip(my_pic[item],_root["load_mc" + depth]);
作者: kaba47 发布时间: 2011-06-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28