- 在线时间
- 6095 小时
- 专家
- 0
- UID
- 44970
- 注册时间
- 2003-4-7
- 帖子
- 26082
- 精华
- 0
- 积分
- 51754
- 居住地
- 福建省 厦门市
- 离线
- 21 天
专长: 前端制作,.NET ,产品设计
- 帖子
- 26082
- 体力
- 51517
- 威望
- 21
- 居住地
- 福建省 厦门市
|
发表于 2007-4-30 16:52:32
|显示全部楼层
要制作一个动画轮翻播放的效果:
一个大的容器用来动态载入动画,并列出被载入动画的标签,以便用户点击查看感兴趣的动画。当用户没有任何点击的时候,动画按照各自设置好的时间播放,到时间之后就跳转到另外一个动画播放。
这些动画的载入我是使用创建一个空白的MovieClip,然后将动画载入进来。自动播放的时间控制是使用setTimeout/setInterval来控制的。现在的问题是,动画如果比较大,而网速比较慢的时候,播放的时间就不准了,那个动画载入花掉多少时间,这个动画就少播多少时间。而我想要的是,不管这个动画载入花掉多长时间都不影响它的播放时间,不知道怎么解决了。
主要是不知道我这个空白MovieClip什么时候载入完成,望各位高手给些思路。
为避免各位看不懂我在描述什么,贴出代码,从代码逻辑上来帮我分析一下,谢谢。
- function loadXml(url)
- {
- var rXml = new XML();
- rXml.ignoreWhite = true;
- rXml.load(url);
- rXml.onLoad = function (success)
- {
- if (success)
- {
- itemArray = this.firstChild.childNodes;
- Image_Loader.createEmptyMovieClip("empty",1);
- if(itemArray.length > 1){
- var i = 0;
- while (i < itemArray.length)
- {
- _root.attachMovie("btn", "btn" + i, 1000 + i, {_x: 15 + 25 * i, _y: 120});
- _root["btn" + i].txt.text = i + 1;
- _root["btn" + i].index = i;
- _root["btn" + i].onPress = btnPress;
- i++;
- }
- showBtn(index);
- }else{
- index = 0;
- }
- SwitchImage();
- }
- };
- }
- var SwitchImage = function(){
- clearInterval(waitID);
- loadNextPic();
- timeLabel = jumpTime;
- waitID = setInterval(SwitchImage,jumpTime);
- showBtn(index);
- }
- function loadNextPic()
- {
- index++;
- if (index > itemArray.length - 1){
- index = 0;
- }
- Loader_Item = itemArray[index].attributes;
- Image_Loader.empty.loadMovie(Loader_Item.picUrl);
- Image_Loader.empty.onPress = function(){
- getUrl(Loader_Item.link,"_blank");
- }
- jumpTime = Loader_Item.time * 1000;
- }
- function btnPress()
- {
- _root.index = this.index;
- clearInterval(waitID);
- Loader_Item = itemArray[index].attributes;
- Image_Loader.empty.loadMovie(Loader_Item.picUrl);
- waitID = setInterval(SwitchImage,Loader_Item.time * 1000);
- timeLabel = Loader_Item.time * 1000;
- showBtn(index);
- }
- function showBtn(id)
- {
- var i = 0;
- while (i < itemArray.length)
- {
- _root["btn" + i].gotoAndStop(1);
- i++;
- }
- _root["btn" + id].gotoAndStop(2);
- }
- var index = -1;
- var waitID = 0;
- var itemArray = new Array();
- var Loader_Item;
- var jumpTime;
- var swfPath;
- swfPath = "site_swf.xml";
- loadXml(swfPath);
复制代码 |
|